全面了解Java中的CAS机制
在看到Java锁机制的时候,无意中看到了CAS这个词,然后在百度查找CAS看了很多文章始终没有看的太懂,今天又在Google上查找了一些资料,才算是真正弄清楚了CAS机制。而这些类的实现都依赖于CAS的算法。切换涉及到清空寄存器,缓存数据。在某个资源不可用的时候,就将cpu让出,把当前等待线程切换为阻塞状态。但是,由于在进程挂起和恢复执行过程中存在着很大的开销。某个线程可以不让出cpu,而是一直while循环,如果失败就重试,直到成功为止。所以,当数据争用不严重时,乐观锁效果更好。比如CAS就是一种乐观锁思想的应用。上面的操作是原子操作,现在来看看如果两个线程同时要对V进行加1操作使用上面的CAS机制后能不能获得正确结果。③Thread2也要对V执行加操作。
用户评论