热门

最新

红包

立Flag

投票

同城

我的

发布
weixin_68941977
仲夏优酱
3 年前
trueweixin_68941977

CAS和Synchronized都可以保证多线程环境下共享数据的安全性。
Synchronized,悲观锁。是从悲观的角度出发:
总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。
(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。
jdk中的ReentrantLock也是一种悲观锁。
CAS,乐观锁,是从乐观的角度出发:
总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。


@仲夏优酱:创建锁对象 董某
ReentrantLock lock = new ReentrantLock();
给董某 上锁lock.lock()
原子操作
……
要踩缝纫机了,给董某 解锁
lock.unlock()

…全文
CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条动态
立即登录