java用读写方法实现读写锁

使用读写方法来实现读写锁:

package acm;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
*类描述:用读写方法实现读写锁
*@author: 张宇
*@date: 日期: 2018年9月10日 时间: 下午3:37:32
*@version 1.0
 */
public class ReadAndWriteLockTest {
	// 读写锁对象
	private ReadWriteLock readWriteLock=new ReentrantReadWriteLock();
	//定义一个读写的数据
	private String data="";
	
	/**
	 * 进行读操作
	 * 可以多个读线程同时进入,写线程不能执行
	 */
	public String getReadWriteLock(){
		//获取读锁,并加锁
		Lock readLock=readWriteLock.readLock();
		readLock.lock();
		try{
			System.out.println("线程名称:"+Thread.currentThread().getName());
			return this.data;
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			readLock.unlock();
		}
		return null;
	}
	
	/**
	 * 进行写操作
	 * 只有一个线程能进行写
	 */
	public void putReadWriteLock(String data){
		//获取写锁,并加锁
		Lock writeLock=readWriteLock.writeLock();
		writeLock.lock();
		
		try{
			System.out.println("线程名称:"+Thread.currentThread().getName());
			Thread.sleep(1000);
			this.data=data;
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			writeLock.unlock();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/zy345293721/article/details/82590719