正确使用lock锁

Lock lock = new ReentrantLock();
// 不要将获取锁的过程写在try块中,因为如果在获取锁时发生了异常,异常抛出的同时也会导致锁无故释放
lock.lock();
// 错误代码:代码执行到这里,如果抛出异常的代码没有在try块中,不会释放锁
// int i = 1/0;
try {
    // 正确代码:先执行catch块中逻辑,再执行finally块中逻辑
    int i = 1/0;
} catch (Exception e) {
    System.out.println("================");
} finally {
    // 保证在获取到锁之后,最终能够被释放
    System.out.println("+++++++++++++");
    lock.unlock();
}

你可能感兴趣的:(正确使用lock锁)