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

避免并发

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

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

并发处理

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

    3、选择使用哪一种锁?
        选择标准是:冲突的频繁性和严重性。如果冲突很少,或者后果不是很严重,那么通常情况下选择乐观锁策略。
        如果冲突的结果对用户来说是痛苦的,那么就要使用悲观锁策略。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章