ReentrantReadWriteLock的简单实用

java中对于实用synchronized对线程安全,与同步的操作是十分简单便利的,但是同时也会对性能有所降低。
但是发现synchronized对于读写数据时并不是最有效的,通过查找资料发现JDK1.5提供了一个工具类ReentrantReadWriteLock,这个就很好的解决了这个操作。
ReentrantReadWriteLock的特点为允许多个并发线程对同一个数据经行读写访问,但是同时只能有一个线程写入同一个数据。

public class list_item_cardbag2 {

    private list_item_message3 mAllData;
    private ReentrantReadWriteLock mLock;

    public list_item_cardbag2(list_item_message3 mAllCityData) {
        this.mAllData=mAllCityData;
        mLock = new ReentrantReadWriteLock();
    }

    /**
     * 修改数据
     * @param name
     * @param time
     */
    public void setCityData(String name,String time){

        ReentrantReadWriteLock.WriteLock mWriteLock=mLock.writeLock();
        try {
            mWriteLock.lock();
            mAllData.setMessage2_name(name);
            mAllData.setMessage2_time(time);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            mWriteLock.unlock();
            
        }
    }

    /**
     * 获取数据
     * @return
     */
    public String getTime(){
        ReentrantReadWriteLock.WriteLock mWriteLock=mLock.writeLock();
        try {
            mWriteLock.lock();
            return mAllData.getMessage2_time();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }finally {
            mWriteLock.unlock();
            
        }
    }
    
    
}

你可能感兴趣的:(ReentrantReadWriteLock的简单实用)