java线程之Lock的使用

2018-03-22  本文已影响0人  dimdark

目标: 大致介绍一下 java.util.concurrent.locks 包下的类, 接口 及其常用方法

1. Lock 接口
Lock接口

使用Lock接口的最佳模式:

public void method() throw InterruptedException {
    try {
        lock.lock(); // lock.lockUninterruptibly();
    } finally {
        lock.unlock();
    }
}

用户必须手动释放Lock锁(发生异常时不会自动释放Lock锁), 因为Lock锁并不是JVM原生支持的, 而是JDK提供的功能;

2. ReentrantLock 类(实现Lock接口的类)(互斥锁)

ReentrantLock是唯一实现了Lock接口的类,并且ReentrantLock类提供了更多的方法;

公平锁非公平锁
公平锁 表示 线程获取锁的顺序是按照线程加锁的顺序来分配的, 即先来先得的FIFO先进先出顺序;
非公平锁 是 一种获取锁的抢占机制, 是随机获得锁的, 和公平锁不一样的就是先来的不一定先得到锁;

3. Condition 接口
Condition接口方法详解
4. ReadWriteLock 接口 和 ReentrantLockReadWriteLock
ReadWriteLock接口

ReentrantReadWriteLock类实现了ReadWriteLock接口, 其api与ReentrantLock类的api接口保持一致;

上一篇 下一篇

猜你喜欢

热点阅读