ReentrantReadWriteLock的简单实用

【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=https://www.it610.com/article/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(); } }}

    推荐阅读