1. ReadWriteLock:読み取り操作と書き込み操作スレッドが一緒に実行され、同じ操作の効率が向上します。
2.テストコード:
パブリッククラスT_ReadWriteLock {
静的ロックロック=新しい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(例外e){
e.printStackTrace();
}最後に{
lock.unlock();
}
}
public static void write(Lock lock){
try {
lock.lock();
//
書き込み必要2秒Thread.sleep(2000);
System.out.println( "写完毕!");
} catch(Exception e){
e.printStackTrace();
}最後に{
lock.unlock();
}
}
public static void main(String [] args){
//実行可能な読み取り=()-> read(lock); //通常の使用锁
// Runnable write =()-> write(lock);
実行可能な読み取り=()->読み取り(読み取りロック);
実行可能な書き込み=()->書き込み(書き込みロック);
for(int i = 0; i <18; i ++)new Thread(read).start();
for(int i = 0; i <2; i ++)new Thread(write).start();
}
}