您的位置:首页 > 运维架构 > 网站架构

《企业应用架构模式》读书笔记1-并发

2015-11-04 16:13 302 查看

避免并发

[b]隔离性和不变性[/b]

1、隔离
划分数据,使得每一片数据只能被一个执行单元访问。
隔离是一种减少错误发生的有效技术。可以使用隔离方法安排资源,以便程序进入的是隔离区,而无需考虑并发问题。
好的并发设计应该是:找个各种创建隔离区的方法,并且保证每个隔离区里能够完成尽可能多的任务。

2、不变性
只有共享数据可以修改的情况下,才会出现并发问题。所以,一个避免并发冲突的方法是识别哪些是不变的数据。
通过定义某些不变的数据,或者至少是几乎总不变的,就可以不用考虑这些数据的并发。


并发处理

[b]乐观锁和悲观锁[/b]

1、乐观锁
使用版本号,时间戳等,在提交数据时进行比对,来检测冲突,它其实不是锁,只是一种冲突检测策略。
2、悲观锁
同一个时间段,只能有一个执行单元来修改数据,其他执行单元必须等待它执行完才能获取数据。它是一种冲突避免策略。

3、选择使用哪一种锁?
选择标准是:冲突的频繁性和严重性。如果冲突很少,或者后果不是很严重,那么通常情况下选择乐观锁策略。
如果冲突的结果对用户来说是痛苦的,那么就要使用悲观锁策略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  架构 企业应用