在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。 典型的冲突有: l 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 l 脏读:当一个事务读取其它完成一半 ...
分类:
其他好文 时间:
2017-05-11 12:21:35
阅读次数:
193
乐观锁 在关系数据库管理系统里,乐观并发控制(又名“乐观锁”,Optimistic Concurrency Control,缩写“OCC”)是一种并发控制的方法。它假设多用户并发的事务在处理时不会彼此互相影响,各事务能够在不产生锁的情况下处理各自影响的那部分数据。在提交数据更新之前,每个事务会先检查 ...
分类:
其他好文 时间:
2017-05-09 15:46:38
阅读次数:
253
转自【http://www.csdn.net/article/2014-11-28/2822858 】 这篇文章对我来说,受益匪浅。特别是第三部分-乐观锁,通过版本值来判定的方法确实让我眼前一亮。 电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大 ...
分类:
其他好文 时间:
2017-05-07 18:36:10
阅读次数:
240
将系统性能优化到极致,永远是程序爱好者所努力的一个方向。在java并发领域,也有很多的实践与创新,小到乐观锁、CAS,大到netty线程模型、纤程Quasar、kilim等。Disruptor是一个轻量的高性能并发框架,以惊人的吞吐量而受到广泛的关注。Disruptor为提高程序的并发性能,提供了很 ...
分类:
其他好文 时间:
2017-05-03 14:34:31
阅读次数:
257
1正常执行 127.0.0.1:6379> multi 开启事物OK #然后进行相关操作127.0.0.1:6379> set key4 v4QUEUED127.0.0.1:6379> get key2QUEUED #提交127.0.0.1:6379> exec1) OK2) "v2" 2放弃事物1 ...
分类:
其他好文 时间:
2017-04-30 17:20:10
阅读次数:
156
原创声明:本文为本人原创作品,绝非他处摘取,转载请注明出处 1.乐观锁 介绍:认为数据在使用过程中,不会被其他程序修改、所以只有在数据提交时才检测数据是否已经被修改 实现方法 1).使用版本号:给数据所在表加个字段,记录数据版本号。提交时检测版本号与未修改前的版本号一不一致。不一致说明数据已经被其他 ...
分类:
其他好文 时间:
2017-04-28 10:32:10
阅读次数:
222
传统SOA架构其实无法面对高并发事务。 这种方式不适合热点资源,也就是高并发场合。 虽然乐观锁短,但是容易产生脏数据。 SOA是以服务这个方式对外提供功能,我们很显然喜欢在Service中加上JTA等事务,比如EJB的无态Bean或Spring的@Transaction标注都是激活这样的功能,这种方 ...
分类:
其他好文 时间:
2017-04-27 15:43:01
阅读次数:
195
5. 事务并发处理 a) 事务的特性:ACID i.Atomicity 原子性 ii.Consistency 一致性 iii.Isolation 隔离性 iiii.Durability 持久性 b) 事务并发时可能出现的问题 i. 第一类丢失更新(Lost Update) 汇入100元把余额改为11 ...
分类:
其他好文 时间:
2017-04-27 15:42:01
阅读次数:
279
Synchronized 与Lock都是可重入锁,同一个线程再次进入同步代码的时候.可以使用自己已经获取到的锁。 Synchronized是悲观锁机制,独占锁。而Locks.ReentrantLock是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。 Reentr ...
分类:
其他好文 时间:
2017-04-25 14:58:01
阅读次数:
392
理解锁的基础知识如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。基础知识之一:锁的类型锁从宏观上分类,分为悲观锁与乐观锁乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低...
分类:
编程语言 时间:
2017-04-22 09:51:14
阅读次数:
2016