import java.util.Random;
import java.util.concurrent.locks.ReentrantReadWriteLock;
public class ReadWriteLock {
public static ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
public static int COUNT = 1;
public static void main(String[] args) {
Runnable read = () -> {
ReentrantReadWriteLock.ReadLock readLock = lock.readLock();
readLock.lock();
try {
ThreadUtils.sleep(2000);
System.out.println("我在读数据" + COUNT);
} finally {
readLock.unlock();
}
};
Runnable write = () -> {
ReentrantReadWriteLock.WriteLock writeLock = lock.writeLock();
writeLock.lock();
try {
ThreadUtils.sleep(2000);
System.out.println("我在写数据" + COUNT++);
} finally {
writeLock.unlock();
}
};
for (int i = 0; i < 100; i++) {
Random random = new Random();
int flag = random.nextInt(100);
if (flag > 20){
new Thread(read,"read").start();
} else {
new Thread(write,"write").start();
}
}
}
}
ReadWriteLock
最新推荐文章于 2024-07-12 15:51:39 发布