首页 > 其他 > 详细

非阻塞的同步、无锁

时间:2014-01-16 00:19:25      阅读:424      评论:0      收藏:0      [点我收藏+]

基于锁的同步方式,是一阻塞的线程间同步方式,不同线程在锁竞争时,总不能避免相互等待,为了避免这个问题,就提出了非阻塞同步的方式,最简单的一种非阻塞同步实现就是ThreadLocal。另一种方式就是基于比较并交换(Compare And Swap)CAS算法的无锁并发控制方法。CAS算法的是有3个值配合完成的,一个表示要更新的变量,一个表示预期的值,一个表示新值,如果要更新的变量与预期值不同则说明已经有其他线程做了更新,则当前线程什么都不做,直到更新值于预期值相同才执行成功。CAS操作是乐观的,它总认为自己可以执行成功,当多个线程同时使用一个变量时,只有一个会成功,其余的均会失败,失败的线程也不会挂起,而是进行重试。基于这个原理,CAS操作没有锁,可以避免线程间的调度带来的开销,因此他比基于锁的同步方式具有更优越的性能。

非阻塞的同步、无锁

原文:http://www.cnblogs.com/zengxianxi/p/3517185.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!