码迷,mamicode.com
首页 > 其他好文 > 详细

ReadWriteLock 读和写锁

时间:2014-08-11 10:19:43      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:小练习

public class ReadWriteLockDemo {
	
	public static void main(String[] args) {
		final Queue q = new Queue();
		for (int i = 0; i < 3; i++) {
			new Thread(new Runnable(){
				@Override
				public void run() {
					while (true) {
						
						q.set(new Random().nextInt(1000));
					}
				}
				
			}).start();
			new Thread(new Runnable() {
				@Override
				public void run() {
					while (true) {
						
						q.read();
					}
				}
			}).start();
		}
	}
}
class Queue{
	private int data;
	private ReadWriteLock rwl = new ReentrantReadWriteLock();
	public void set(int data){
		rwl.readLock().lock();
		this.data = data;
		try {
			System.out.println(Thread.currentThread().getName()
					+ " ready to write data");
			Thread.sleep(1000);
			System.out.println(Thread.currentThread().getName() + " 写入数据 "
					+ data);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
			rwl.readLock().unlock();
		}
	}
	public void read() {
		rwl.writeLock().lock();
		try {
			System.out.println(Thread.currentThread().getName()
					+ " ready to read data");
			Thread.sleep(1000);
			System.out.println(Thread.currentThread().getName() + " 获取dao数据 "
					+ data);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
			rwl.writeLock().unlock();
		}
	}
}


本文出自 “要么拼命,要么滚回去!” 博客,请务必保留此出处http://jiangzuun2014.blog.51cto.com/8732469/1538356

ReadWriteLock 读和写锁,布布扣,bubuko.com

ReadWriteLock 读和写锁

标签:小练习

原文地址:http://jiangzuun2014.blog.51cto.com/8732469/1538356

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!