java多线程学习之ReentrantReadWriteLock(二)
2017-05-26 12:15
507 查看
package learn.thread; import java.util.concurrent.locks.ReentrantReadWriteLock; /* ReentrantReadWriteLock,比ReentrantLock更强大的锁,读写,写读互斥 */ public class Demo17 { static ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); static int count = 0; public static void main(String[] args) { Thread t1 = new Thread() { @Override public void run() { lock.readLock().lock(); try { System.out.println("线程1准备读取"); Thread.sleep(3000); System.out.println("线程1读取完成"); } catch (InterruptedException e) { e.printStackTrace(); } lock.readLock().unlock(); } }; Thread t2 = new Thread() { @Override public void run() { lock.writeLock().lock(); try { System.out.println("线程2准备写入"); Thread.sleep(3000); System.out.println("线程2写入完成"); } catch (InterruptedException e) { e.printStackTrace(); } lock.writeLock().unlock(); } }; t1.start(); t2.start(); } } // 线程1准备读取 // 线程1读取完成 // 线程2准备写入 // 线程2写入完成
package learn.thread; import java.util.concurrent.locks.ReentrantReadWriteLock; /* ReentrantReadWriteLock,比ReentrantLock更强大的锁,写写互斥 */ public class Demo18 { static ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); static int count = 0; public static void main(String[] args) { Thread t1 = new Thread() { @Override public void run() { lock.writeLock().lock(); try { System.out.println("线程1准备写入"); Thread.sleep(3000); System.out.println("线程1写入完成"); } catch (InterruptedException e) { e.printStackTrace(); } lock.writeLock().unlock(); } }; Thread t2 = new Thread() { @Override public void run() { lock.writeLock().lock(); try { System.out.println("线程2准备写入"); Thread.sleep(3000); System.out.println("线程2写入完成"); } catch (InterruptedException e) { e.printStackTrace(); } lock.writeLock().unlock(); } }; t1.start(); t2.start(); } } // 线程1准备写入 // 线程1写入完成 // 线程2准备写入 // 线程2写入完成
相关文章推荐
- Java多线程学习笔记3——ReentranLock和ReentrantReadWriteLock
- java多线程学习之ReentrantReadWriteLock(一)
- java多线程学习笔记——读写锁(ReentrantReadWriteLock)
- JAVA多线程学习之ReentrantReadWriteLock
- java多线程学习10-使用ReentrantReadWriteLock的一个例子
- JAVA多线程之——读写锁 ReentrantReadWriteLock
- java多线程基础---synchronized与ReentrantReadWriteLock的介绍与比较
- Java 多线程3:Lock 接口(接口方法分析,ReentrantLock,ReadWriteLock)
- Java多线程——锁(Synchronized、Lock、ReentrantLock、ReadWriteLock、ReentrantReadWriteLock)
- JAVA多线程之——读写锁 ReentrantReadWriteLock
- JAVA多线程之——读写锁 ReentrantReadWriteLock
- Java多线程(十)之ReentrantReadWriteLock深入分析
- Java多线程(十)之ReentrantReadWriteLock深入分析
- JAVA多线程之——读写锁 ReentrantReadWriteLock
- java 多线程 ReentrantReadWriteLock 使用
- Java多线程系列--“JUC锁”08之 共享锁和ReentrantReadWriteLock
- JAVA多线程之——读写锁 ReentrantReadWriteLock
- java多线程--ReentrantReadWriteLock的使用
- JAVA多线程之——读写锁 ReentrantReadWriteLock
- java多线程:并发包中ReentrantReadWriteLock读写锁的原理