JAVA常用的锁机制

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效率高几倍。

你可能感兴趣的:(JAVA常用的锁机制)