java语言-并发和同步-CAS和乐观锁
乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
乐观锁是每次操作时不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。悲观锁是会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁可以使用volatile+CAS原语实现,带参数版本来避免ABA问题,在读取和替换的时候进行判定版本是否一致;悲观锁可以使用synchronize以及Lock。
文章链接
加载更多