线程程序执行过程中,并发执行的代码段.线程之间可以共享内存.线程安全增加了同步处理,确保在同一时刻,只有一个线程执行同步代码.保证线程安全的方法就是锁机制java中的任何对象都可以作为锁对象synchronized(lock){....}代码块中的代码被确保同一时间只有一个线程才能执行同步..
分类:
编程语言 时间:
2016-05-04 19:17:04
阅读次数:
215
一:概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);InnoDB存储引擎既支持行级锁( row-level locking),也支持表级锁,但默认情 ...
分类:
数据库 时间:
2016-05-04 15:46:34
阅读次数:
189
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制( ...
分类:
数据库 时间:
2016-05-03 12:44:27
阅读次数:
360
上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特 ...
分类:
数据库 时间:
2016-05-03 12:24:33
阅读次数:
292
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些 ...
分类:
其他好文 时间:
2016-05-01 12:10:35
阅读次数:
189
SQL Server 与 Oracle 数据库两者一个最大的区别,就是其应用平台的差异。 现在SQL Server数据库只能够部署在微软的操作系统上。而Oracle数据库其不但可以支持微软的操作系统,而且还可以支持开源的操作系统,如Linux等等。 感觉最大区别是在锁机制上,一个是页级锁,一个是行级 ...
分类:
数据库 时间:
2016-04-30 23:40:01
阅读次数:
385
生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。
生产者消费者模式的优点- 解耦
- 支持并发
- 支持忙闲不均
解决方法可分为两类:
(1)用信号量和锁机制实现生产者和消费者之间的同步;
- wait() / notify()方法
- await() / signal()方法
- BlockingQu...
分类:
编程语言 时间:
2016-04-29 19:45:09
阅读次数:
254
以前虽内存泄漏不以为然,因为在几个G内存的电脑上,忘了delete一个对象,能占多大点内存啊? 结果这次出问题了,我的程序彻夜运算,每次执行10遍任务后,程序就会崩溃,一开始根据打印的日志,还以为是自己没有正确载入图片,并且还怀疑到回调函数/刷新函数/锁机制/多线程同步等等,全都怀疑上了。后来发现一 ...
分类:
其他好文 时间:
2016-04-27 22:45:13
阅读次数:
287
乐观锁: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而 言,这样的开销往往无法承受。而乐观锁机制在一定程度上解决了这 ...
分类:
其他好文 时间:
2016-04-27 12:52:17
阅读次数:
179
背景:我们在实现单例模式的时候往往会忽略掉多线程的情况,就是写的代码在单线程的情况下是没问题的,但是一碰到多个线程的时候,由于代码没写好,就会引发很多问题,而且这些问题都是很隐蔽和很难排查的。 例子1:没有volatile修饰的uniqueInstance 这里面的结果有可能会是:(没有真正重现过, ...
分类:
其他好文 时间:
2016-04-25 19:12:26
阅读次数:
261