专栏
扫码关注公众号
死锁的必要条件
互斥至少有一个资源处于非共享状态占有并等待非抢占循环等待
什么是自适应自旋?
同步对性能最大的影响是阻塞,挂起和恢复线程的操作都需要转入内核态完成。许多应用上共享数据的锁定只会持续很短的时间,为了这段时间去挂起和恢复线
偏向锁、轻量级锁和重量级锁的区别?
偏向锁的优点是加解锁不需要额外消耗,和执行非同步方法比仅存在纳秒级差距,缺点是如果存在锁竞争会带来额外锁撤销的消耗,适用只有一个线程访问同步
ReentrantLock 的可重入是怎么实现的?
以非公平锁为例,通过nonfairTryAcquire方法获取锁,该方法增加了再次获取同步状态的处理逻辑:判断当前线程是否为获取锁的线程来决