前些日子看到一篇关于乐观锁和悲观锁的blog,看了关于乐观锁和悲观锁的讨论以及在真实项目里的一些例子,也勾引起了我写篇blog的欲望,既然乐观锁和悲观锁是关于并发控制机制相关的知识,那我就来写一篇关于分布式事务的blog,我个人觉得分布式事务是乐观锁悲观锁的延伸阅读。 乐观锁和悲观锁多数是在处理与单 ...
分类:
其他好文 时间:
2016-12-01 21:08:17
阅读次数:
253
1、Volatile:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html 2、悲观锁与乐观锁:http://www.cnblogs.com/softidea/p/5309312.html 3、乐观锁的一种实现方式:http: ...
分类:
其他好文 时间:
2016-11-21 14:37:59
阅读次数:
129
悲观锁的问题: 因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁。 乐观锁的原理大致一样,这 ...
分类:
其他好文 时间:
2016-11-09 12:20:45
阅读次数:
258
这篇文章讲了 1.同步异步概念(消去很多疑惑),同步就是一件事一件事的做;sychronized就是保证线程一个一个的执行。 2.我们需要明白,锁机制有两个层面,一种是代码层次上的,如Java中的同步锁,典型的就是同步关键字synchronized ( 线 程级别的)。另一个就是数据库层次上的,比较 ...
分类:
数据库 时间:
2016-11-03 18:24:30
阅读次数:
263
在高并发下,经常需要处理SELECT之后,在业务层处理逻辑,再执行UPDATE的情况。 若两个连接并发查询同一条数据,然后在执行一些逻辑判断或业务操作后,执行UPDATE,可能出现与预期不相符的结果。 在不使用悲观锁与复杂SQL的前提下,可以使用乐观锁处理该问题,同时兼顾性能。 场景模拟: 假设一张 ...
分类:
其他好文 时间:
2016-11-02 00:41:58
阅读次数:
237
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op ...
分类:
其他好文 时间:
2016-11-01 23:50:33
阅读次数:
147
锁( locking ) 锁( locking ) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算 处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中 处理中 ...
分类:
数据库 时间:
2016-10-27 07:44:29
阅读次数:
245
乐观锁、悲观锁、要实践 http://chenzhou123520.iteye.com/blog/1860954 http://chenzhou123520.iteye.com/blog/1863407 http://outofmemory.cn/sql/optimistic-lock-and-pe ...
分类:
其他好文 时间:
2016-10-07 07:39:05
阅读次数:
141
1.数据库中乐观锁与悲观锁的例子 悲观锁:一般都需要依赖数据库的锁实现。使用select...for update,锁住行,查询出数据后进行更新 针对mysql Innodb引擎,会使用行锁或者表锁 乐观锁:使用版本号列实现 select version from table where id= 1 ...
分类:
其他好文 时间:
2016-10-06 17:29:07
阅读次数:
103
乐观锁和悲观锁,就是对数据库进行操作时使用的,乐观锁是update是开始,悲观锁是查询记录那一刻开始,两者结束都是commit或者 rollback 悲观锁,一直锁,不让改 乐观锁,只在更新的时候判断一下别人有没有改过这个数据,保证商品只被卖出一次,可以使用版本号等机制,可以提高数据吞吐量 并发控制 ...
分类:
其他好文 时间:
2016-10-06 14:47:36
阅读次数:
114