JAVA常用的锁机制

2020-04-03  本文已影响0人  MaTae

Synchronized

实现依赖JVM,随着jdk版本升级从1.5的重量级锁,1.6的适应自旋、锁消除、锁粗化、轻量级锁、偏向锁等效率提升,1.7+实现机制优化。synchronized等待所不能被线程中断,容易死锁。

ReentrantLock

实现依赖cpu指令,必须在finally中解锁。引入公平锁和非公平锁(效率高)。

lock.lock() 忽略中断锁,lock.lockInterruptibly()响应中断锁

lock.tryLock()轮询锁,lock.tryLock(Long timeout, TimeUnit unit)定时轮询锁

Semaphore

与reentrantLock相似,支持多个临界资源。acquire()与release()方法来获得和释放临界资源。

AtomicInteger

运算原子化,比ReentrantLock效率高几倍。

上一篇 下一篇

猜你喜欢

热点阅读