JUC ---読み取り/書き込みロック

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();

}

}

おすすめ

転載: www.cnblogs.com/tengri-fighting/p/12758711.html