java多线程
琅天溪
好编程,编好程,编程好
展开
-
生产者消费者的一个面试问题
题目:写一个固定容量的同步容器,拥有put、get方法以及getCount方法,能够支持2个生产者以及10个消费者的阻塞调用。思路 从题目可以得出这是一个同步容器,这就可以理解为该容器对象在调用过程中需要加锁,一般我们会想到synchornized,先用这个方法实现,下面是代码import java.util.LinkedList; import java.util.concurrent.Time原创 2017-07-13 21:08:41 · 1154 阅读 · 0 评论 -
JDK1.6的Synchronized底层优化(偏向锁、轻量级锁)
本来计划完善java并发编程艺术读后感二,后来直接在项目中需要用到锁,所以单独提出来做个记录。锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能降级成偏向锁。这种锁升级却不能降级的策略,目的是为了提高获得锁和释放锁的效率。Synchronized原理:Synchronize...转载 2018-06-11 12:08:46 · 1303 阅读 · 0 评论