随笔分类 -  JVM中锁的实现

摘要:偏向锁 Hotspot 的作者经过以往的研究发现大多数情况下锁不仅不存在多线程竞争,而且总是由同一线程多次获得,为了让线程获得锁的代价更低而引入了偏向锁。当一个线程访问同步块并获取锁时,会在对象头和栈帧中的锁记录里存储锁偏向的线程 ID,以后该线程在进入和退出同步块时不需要花费 CAS操作来加锁和解 阅读全文
posted @ 2019-07-11 11:43 孙伟业 阅读(4489) 评论(0) 推荐(3) 编辑
摘要:问题起源 事情得从一个多线程编程里面臭名昭著的问题"Lost wake-up problem"说起。 这个问题并不是说只在Java语言中会出现,而是会在所有的多线程环境下出现。 假如我们有两个线程,一个消费者线程,一个生产者线程。生产者线程的任务可以简化成将count加一,而后唤醒消费者;消费者则是 阅读全文
posted @ 2019-06-19 22:57 孙伟业 阅读(2912) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示