標籤:定義 nts 一個 rgs ant java number ring nal
package com.java.concurrent;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class TestReadWriteLock { public static void main(String[] args) { final ReadWriteLockDemo rw2 = new ReadWriteLockDemo(); new Thread(new Runnable() { public void run() { try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } rw2.set(20); } },"Write:").start(); new Thread(new Runnable() { public void run() { while(true) rw2.get(); } },"Read").start(); }}class ReadWriteLockDemo { private int number = 0; // 定義一個讀寫鎖 private ReadWriteLock lock = new ReentrantReadWriteLock(); // 讀 public void get() { //添加讀鎖 lock.readLock().lock(); try { System.out.println(Thread.currentThread().getName() + ":" + number); } finally { lock.readLock().unlock(); } } // 寫資料 public void set(int number) { //建立寫鎖 lock.writeLock().lock(); try{ System.out.println(Thread.currentThread().getName()+":"+number); this.number = number; }finally{ lock.writeLock().unlock(); } }}
java讀寫鎖ReadWriteLock