pingh14

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年1月4日

摘要: 乐观锁 每次操作时不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止悲观锁 是会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁可以使用volatile+CAS原语实现,读取内存值的方式实现了乐观锁,方法:第一,比较内存值和期望值;第二,替换内存值为要替换值。悲观锁可以使用synchronize的以及Lock。CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化,只有在没变的情况下才对其赋值。例如AtomicInteger的incrementAndGet的实现就用到了compareAndSet(CAS),如下代码所示 阅读全文
posted @ 2014-01-04 23:16 pingh14 阅读(1000) 评论(0) 推荐(0) 编辑