ReentrantLock的lock(), tryLock(), lockInterruptibly() 及使用场景示例
文章目录 总述 1.ReentrantLock简要介绍 2.ReentrantLock提供的获取锁的方式 2.1 lock() 2.2 tryLock() 2.3 tryLock(long timeout, TimeUnit unit) 2.4 lockInterruptibly() 3.使用场景示例 3.1 对于tryLock()的测试 3.2 tryLock(long,TimeUnit), 3.3 tryLock(long, TimeUnit) + 当线程.interrpt() ==》中断线程 3.4 lockInterruptibly() + 当前线程.interrupt() ==》中断线程 参考博文1 参考博文2 一直在用concurrent包里的东西,最近想研究一下个中细节,先从ReentrantLock提供的集中获取锁的方式开始吧。 总述 lock() 方法是平常使用得最多的一个方法,就是用来获取锁。如果锁已被其他线程获取,则进行等待。 tryLock() 方法是有返回值的,它表示用来尝试获取锁,如果获取成功,则返回true,如果获取失败(即锁已被其他线程获取),则返回false,也就说这个方法无论如何都会立即返回。在拿不到锁时不会一直在那等待。 tryLock(long time, TimeUnit unit) 方法和tryLock()方法是类似的