java锁-分类

一、锁分类

线程要不要锁住同步资源?
锁住--悲观锁
不锁住--乐观锁

锁住同步资源如果失败,线程要不要阻塞?
阻塞
不阻塞--自旋锁,适应性自旋锁

多个线程竞争同步资源的流程细节上的区别?
不锁住资源,多个线程中只有一个能够修改资源成功,其它线程会去重试--无锁
同一个线程执行同步资源时自动获取资源--偏向锁
多个线程竞争同步资源的时候,没有获取资源的线程通过自旋等待锁释放--轻量级锁
多个线程竞争同步资源的时候,没有获取资源的线程阻塞等待唤醒--重量级锁

多个线程竞争需不需要排队?
排队--公平锁
先尝试插队,插队失败再去排队--非公平锁

一个线程中的多个线程能不能获取同一把锁?
能--可重入锁
不能--非可重入锁

多个线程能不能共享同一把锁?
能--共享锁
不能--排他锁

猜你喜欢

转载自www.cnblogs.com/wfbk/p/11854000.html