2020年9月19日

Java 多线程 - 用CAS方式获取锁的,都是乐观锁么?

摘要: 总结 先抛出我的结论:用CAS方式获取锁的,并非都是乐观锁。 我们在Java里使用的各种锁,几乎全都是悲观锁。synchronized从偏向锁、轻量级锁到重量级锁,全是悲观锁。JDK提供的Lock实现类全是悲观锁。其实只要有“锁对象”出现,那么就一定是悲观锁。因为乐观锁不是锁,而是一个在循环里尝试C 阅读全文

posted @ 2020-09-19 20:43 frank_cui 阅读(523) 评论(0) 推荐(0)

Java多线程 - 互斥锁 vs 自旋锁、读写锁、悲观锁 vs 乐观锁、公平锁 vs 非公平锁

摘要: 总结 1-悲观锁:Java里使用的各种锁:互斥锁、自旋锁、读写锁,都是属于悲观锁。悲观锁做事比较悲观,它认为多线程同时修改共享资源的概率比较高,于是很容易出现冲突,所以访问共享资源前,先要上锁。 2-乐观锁:Java里很少有乐观锁。目前据我所知,java.util.concurrent.atomic 阅读全文

posted @ 2020-09-19 19:49 frank_cui 阅读(627) 评论(0) 推荐(0)

Java多线程 - synchronized 底层实现原理

摘要: 总结 每个对象有一个监视器锁(monitor)。下面两个方式,本质上都是通过监视器锁(monitor)来控制 同步代码块是通过 monitorenter 和 monitorexit 指令获取线程的执行权 同步方法通过加 ACC_SYNCHRONIZED 标识实现线程的执行权的控制 "同步代码块"的原 阅读全文

posted @ 2020-09-19 15:14 frank_cui 阅读(640) 评论(0) 推荐(0)

导航

levels of contents