ReentrantLock

ReentrantLock 是一个可重入的互斥锁,它提供了比 synchronized 关键字更灵活的锁机制。它属于 java.util.concurrent.locks 包。

特点:

  • 可重入性:同一个线程可以多次获取锁而不会造成死锁,锁的计数器会递增。
  • 公平性:可以选择公平锁和非公平锁。公平锁会确保线程以请求锁的顺序获取锁,而非公平锁可能会导致“饥饿”现象,即某些线程可能会比其他线程更早获得锁。
  • 尝试锁:支持尝试获取锁的方法,如 tryLock(),这使得线程可以在没有成功获取锁的情况下继续执行其他任务。
  • 中断:可以响应中断操作,允许线程在等待锁时被中断。
  • 定时锁:支持定时锁定方法 tryLock(long time, TimeUnit unit),允许线程在指定时间内尝试获取锁。
Logo

2万人民币佣金等你来拿,中德社区发起者X.Lab,联合德国优秀企业对接开发项目,领取项目得佣金!!!

更多推荐