JAVA JUC 读写锁
Posted 行尸走肉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA JUC 读写锁相关的知识,希望对你有一定的参考价值。
应用示例
class Demo{ int number; ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); public void read(){ //读锁 lock.readLock().lock(); try { System.out.println(Thread.currentThread().getName()+" read "+number); } finally { lock.readLock().unlock(); } } public void write(){ lock.writeLock().lock(); try { number++; System.out.println(Thread.currentThread().getName()+"add number"); } finally { lock.writeLock().unlock(); } } } public class writeReadLockTest { public static void main(String[] args) { Demo d = new Demo(); for(int i =0;i<20;i++) new Thread(new Runnable() { @Override public void run() { d.write(); } },"writeThread "+i+" ").start(); for(int i =0;i<20;i++) new Thread(new Runnable() { @Override public void run() { d.read(); } },"redaThread "+i+" ").start(); } }
以上是关于JAVA JUC 读写锁的主要内容,如果未能解决你的问题,请参考以下文章
JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段
JUC中的读写锁(ReentrantReadWriteLock)
JUC并发编程 共享模式之工具 JUC 读写锁 ReentrantReadWriteLock -- ReentrantReadWriteLock(不可重入锁)使用 & 注意事项