JUC之---读写锁

1、ReadWriteLock:读操作和写操作线程一起运行,提高相同操作的效率。

2、测试代码:

  

public class T_ReadWriteLock {

static Lock lock = new ReentrantLock();

static ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
static Lock readLock = readWriteLock.readLock();
static Lock writeLock = readWriteLock.writeLock();


public static void read(Lock lock){

try {
lock.lock();
//读需要1秒
Thread.sleep(1000);
System.out.println("读完毕!");

} catch (Exception e) {
e.printStackTrace();
} finally {
lock.unlock();
}

}

public static void write(Lock lock) {
try {
lock.lock();
//写需要2秒
Thread.sleep(2000);
System.out.println("写完毕!");
}catch (Exception e) {
e.printStackTrace();
} finally {
lock.unlock();
}
}


public static void main(String[] args) {

// Runnable read = ()->read(lock); //使用正常锁
// Runnable write = ()->write(lock);

Runnable read = ()->read(readLock);
Runnable write = ()->write(writeLock);

for (int i=0; i<18; i++) new Thread(read).start();
for (int i=0; i<2; i++) new Thread(write).start();

}

}

猜你喜欢

转载自www.cnblogs.com/tengri-fighting/p/12758711.html
今日推荐