Java trylock 使用
时间: 2023-08-30 07:11:00 浏览: 46
Java中的`tryLock()`方法是一个非阻塞式的获取锁的方法,它会尝试获取锁,如果锁当前没有被其他线程持有,那么它会立即获取锁并返回true,否则它会立即返回false。如果你想要使用`tryLock()`方法来获取锁,首先需要创建一个ReentrantLock对象,然后使用`tryLock()`方法来获取锁。以下是一个使用`tryLock()`方法的示例:
```
import java.util.concurrent.locks.ReentrantLock;
public class ReentrantLockDemo {
private ReentrantLock lock = new ReentrantLock();
public void doSomething() {
if (lock.tryLock()) {
try {
// 获取到锁后,执行需要同步的代码
} finally {
lock.unlock(); //释放锁
}
} else {
// 如果获取锁失败,执行其他逻辑
}
}
}
```
在上面的示例中,如果`tryLock()`方法返回true,说明获取锁成功,就可以执行需要同步的代码。如果获取锁失败,说明锁已经被其他线程持有,就可以执行其他逻辑。在使用完毕后,需要使用`unlock()`方法释放锁,以便其他线程可以获取锁。需要注意的是,如果你在使用`tryLock()`方法时不释放锁,可能会导致死锁。