用读写锁实现代码

用读写锁实现代码如下:转载于http://blog.csdn.net/ghsau/article/details/7461369/

[java]  view plain copy print ?
  1. class Data {      
  2.     private int data;// 共享数据  
  3.     private ReadWriteLock rwl = new ReentrantReadWriteLock();     
  4.     public void set(int data) {  
  5.         rwl.writeLock().lock();// 取到写锁  
  6.         try {  
  7.             System.out.println(Thread.currentThread().getName() + "准备写入数据");  
  8.             try {  
  9.                 Thread.sleep(20);  
  10.             } catch (InterruptedException e) {  
  11.                 e.printStackTrace();  
  12.             }  
  13.             this.data = data;  
  14.             System.out.println(Thread.currentThread().getName() + "写入" + this.data);  
  15.         } finally {  
  16.             rwl.writeLock().unlock();// 释放写锁  
  17.         }  
  18.     }     
  19.     public void get() {  
  20.         rwl.readLock().lock();// 取到读锁  
  21.         try {  
  22.             System.out.println(Thread.currentThread().getName() + "准备读取数据");  
  23.             try {  
  24.                 Thread.sleep(20);  
  25.             } catch (InterruptedException e) {  
  26.                 e.printStackTrace();  
  27.             }  
  28.             System.out.println(Thread.currentThread().getName() + "读取" + this.data);  
  29.         } finally {  
  30.             rwl.readLock().unlock();// 释放读锁  
  31.         }  
  32.     }  
  33. }  

你可能感兴趣的:(用读写锁实现代码)