Java CAS(CompareAndSet) 乐观锁
1.Java线程简介.
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁).
锁机制存在以下问题:
(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题.
(2)一个线程持有锁会导致其它所有需要此锁的线程挂起.
(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险.
volatile是不错的机制,但是volatile不能保证原子性.因此对于同步最终还是要回到锁机制上来.
独占锁是一种悲
原创
2020-06-11 21:48:37 ·
507 阅读 ·
1 评论