
ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
Lock readLock = readWriteLock.readLock();
Lock writeLock = readWriteLock.writeLock();
for (int i = 0; i < 5; i++) {
new Thread(() -> {
writeLock.lock();
try {
System.out.println(Thread.currentThread().getName()+"t开始写数据");
try { TimeUnit.SECONDS.sleep(new Random().nextInt(5)); } catch(InterruptedException e) { e.printStackTrace(); }
System.out.println(Thread.currentThread().getName()+"t写完数据");
} finally {
writeLock.unlock();
}
}, String.valueOf(i)).start();
}
for (int i = 0; i < 5; i++) {
new Thread(() -> {
readLock.lock();
try {
System.out.println(Thread.currentThread().getName()+"t开始读数据");
try { TimeUnit.SECONDS.sleep(new Random().nextInt(5)); } catch(InterruptedException e) { e.printStackTrace(); }
System.out.println(Thread.currentThread().getName()+"t读完数据");
} finally {
readLock.unlock();
}
}, String.valueOf(i)).start();
}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)