认识乐观锁和悲观锁

乐观锁:

优势:适合读多写少的业务,并发性好,提高系统吞吐量。

缺点:用户体验不好,提交时易被告知数据已被修改。

操作方式:当我们要对一个数据库中的一条数据进行修改的时候,只有对该数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则返回给用户错误的信息,让用户决定如何去做。(如基于mysql通过加version字段实现乐观锁、CAS算法)

CAS(Compare and Swap):

CAS是项乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。

悲观锁:

优势:适合写多读少的雨雾,隔离级别为重复读,提高数据可靠性。

缺点:并发性不好,性能不高。

操作方式:当我们要对一个数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,对该数据进行加锁以防止并发。(基于mysql通过select…for update实现悲观锁)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章