# 没获取到锁时,会尝试重新获取锁(使用了Semaphore,AQS队列)
lock() -锁的过期时间:使用默认过期时间-30s
lock(long leaseTime, TimeUnit unit) - 指定锁的过期时间 leaseTime
# 只会获取一次锁,获取失败则不再获取并返回false
tryLock(); - 锁的过期时间:使用默认过期时间-30s
# 没获取到锁时,在指定的重试时间内,会尝试重新获取锁
tryLock(long time, TimeUnit unit)
- 获取锁的重试时间 time
- 锁的过期时间:使用默认过期时间-30s
# 没获取到锁时,在指定的重试时间内,会尝试重新获取锁
tryLock(long waitTime, long leaseTime, TimeUnit unit)
- 获取锁的重试时间 waitTime
- 指定锁的过期时间 leaseTime
本文详细介绍了Java并发编程中Semaphore的使用,包括如何设置锁的默认和指定过期时间,以及tryLock的各种重载方法在获取锁失败时的重试策略。通过对锁的过期时间和重试时间的控制,实现更灵活的并发控制策略。
2687

被折叠的 条评论
为什么被折叠?



