Java-ReentrantReadWriteLock的简单样例
2017-05-23 19:35
477 查看
内容:读锁时共享的。写锁时相互排斥的(可见执行结果)。都是通过AQS实现的。
public class ReentrantReadWriteLockTest { static class MyObject { private Object object; private ReadWriteLock lock = new ReentrantReadWriteLock(); public void get() { lock.readLock().lock(); System.out.println(Thread.currentThread().getName() + "准备读数据!!"); try { Thread.sleep(new Random().nextInt(1000)); System.out.println(Thread.currentThread().getName() + "读数据为:" + this.object); } catch (InterruptedException e) { e.printStackTrace(); } finally { lock.readLock().unlock(); } } public void put(Object object) { lock.writeLock().lock(); System.out.println(Thread.currentThread().getName() + "准备写数据"); try { Thread.sleep(new Random().nextInt(1000)); this.object = object; System.out.println(Thread.currentThread().getName() + "写数据为" + this.object); } catch (InterruptedException e) { e.printStackTrace(); } finally { lock.writeLock().unlock(); } } } public static void main(String[] args) throws InterruptedException { final MyObject myObject = new MyObject(); ExecutorService executor = Executors.newCachedThreadPool(); for (int i = 0; i < 3; i++) { executor.execute(new Runnable() { @Override public void run() { for (int j = 0; j < 5; j++) myObject.put(new Random().nextInt(1000)); } }); } for (int i = 0; i < 3; i++) { executor.execute(new Runnable() { @Override public void run() { for (int j = 0; j < 5; j++) myObject.get(); } }); } executor.shutdown(); } }
相关文章推荐
- Java-ReentrantReadWriteLock的简单例子
- java多线程基础---synchronized与ReentrantReadWriteLock的介绍和比较
- java 多线之用ReadWriteLock实现 一个简单缓存
- 【Java并发编程实战】-----“J.U.C”:ReentrantReadWriteLock
- java类库的阅读笔记_jdk1.7.0_40_java.util.concurrent.locks.ReentrantReadWriteLock
- 【Java并发编程实战】—–“J.U.C”:ReentrantReadWriteLock
- java 中 ReentrantReadWriteLock的读锁和写锁的使用
- java 多线程 ReentrantReadWriteLock 使用
- 13、java锁之读写锁ReentrantReadWriteLock.ReadLock与ReentrantReadWriteLock.WriteLock
- 深入浅出 Java Concurrency (14): 锁机制 part 9 读写锁 (ReentrantReadWriteLock) (2)
- 《深入浅出 Java Concurrency》—锁机制(九) 读写锁 (ReentrantReadWriteLock) (2)
- 08____java新特性之读写锁(ReentrantReadWriteLock)
- java ReentrantReadWriteLock 之初步(一)
- java 读写锁 , 官方自带示例读解,ReentrantReadWriteLock
- JAVA ReentrantReadWriteLock AND 缓存系统
- 《深入浅出 Java Concurrency》—锁机制(八) 读写锁 (ReentrantReadWriteLock) (1)
- java 共享锁和ReentrantReadWriteLock
- Java多线程(十)之ReentrantReadWriteLock深入分析
- Technique Java. ReentrantReadWriteLock
- Java 并发问题的处理神器:ReentrantReadWriteLock