`

用读写锁包装Map

阅读更多

public class ReadWriteMap<K,V> {
 private final Map<K,V> map;
 private final ReadWriteLock lock = new ReentrantReadWriteLock();
 private final Lock r = lock.readLock();
 private final Lock w = lock.writeLock();
 public ReadWriteMap(Map<K,V> map){
  this.map=map;
 }
 public V put(K key ,V value){
  w.lock();
  try{
   return map.put(key, value);
  }finally{
   w.unlock();
  }
 }
 
 public V get(Object key){
  r.lock();
  try{
   return map.get(key);
  }finally{
   r.unlock();
  }
 }
}

分享到:
评论

相关推荐

    WINDOWS读写锁实现

    参考CRITICAL_SECTION的实现机制,利用CPU的LOCK指令实现读写锁的功能,同时用C++类进行了封装

    windows和linux读写锁C++实现

    windows和linux读写锁C++实现

    读写锁_读写锁_

    读写锁代码可实现对链表的加锁功能,原为并行程序设计基础书121代码实现

    易语言读写锁1.2模块源码

    易语言读写锁1.2模块源码例程程序调用API函数实现读写锁功能的操作。点评:读写锁实际是一种特殊的锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则对共享资源进行写操作。这种锁相...

    C#解决SQlite并发异常问题的方法(使用读写锁)

    本文实例讲述了C#解决SQlite并发异常问题的方法。分享给大家供大家参考,...作者利用读写锁(ReaderWriterLock),达到了多线程安全访问的目标。 using System; using System.Collections.Generic; using System.Text;

    读写锁实现代码

    一般的读写锁代码,都是使用了临界体作为基本锁,这样就出现了在一个线程里获取临界体,但是却在另一个线程里释放临界体的问题。临界体是线程相关锁,必须做到获取和释放都在同一个线程。这个读写锁使用临界体和事件...

    易语言读写锁模块

    易语言读写锁模块源码,读写锁模块,进入,退出,读锁,写锁,解锁,InitializeCriticalSection,DeleteCriticalSection,EnterCriticalSection,LeaveCriticalSection

    linux 读写锁应用实例

    /*使用读写锁实现四个线程读写一段程序的实例,共创建了四个新的线程,其中两个线程用来读取数据,另外两个线程用来写入数据。在任意时刻,如果有一个线程在写数据,将阻塞所有其他线程的任何操作。*/

    mysql读写锁演示案例

    主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要...

    windows 读写锁 (基于关键区的读写锁类 及自动锁)

    读写锁的类 及demo 基于网上的类 改写了几处逻辑不合理的地方 :1、新的读锁来了如已有写锁等待 新的读锁进入等待 2、等待的读锁获取到执行权限后 把正等待的所有读锁全部激活

    java 读写锁代码

    java 读写锁实例代码,付简单注释,测试完整。

    读写锁实现例子

    读写锁实现例子

    简单读写锁实例代码

    简单读写锁实例代码

    08、读写锁ReentrantReadWriteLock&StampLock详解-ev

    读写锁ReentrantReadWriteLock&StampLock详解_e读写锁ReentrantReadWriteLock&StampLock详解_e读写锁ReentrantReadWriteLock&StampLock详解_e读写锁ReentrantReadWriteLock&StampLock详解_e读写锁...

    易语言线程安全之原子锁与读写锁

    @youcanyouup。Tags:线程安全原子锁读写锁。

    关于读写锁算法的Java实现及思考

    关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java...

    linux写优先的读写锁设计

    在linux下有两种实现数据互斥的基本机制,包括了信号量,自旋锁。这里要说的读写锁是自旋锁的一个变种

    C++的线程读写锁(windows实现)

    * 读写锁 * 读-读并发,读-写互斥,写-写互斥 * Windows NT下可以使用 * 基于CRITICAL_SECTION实现,简单高效,只支持在进程内使用,不支持进程间使用 * 支持限制最大并发读者数 * 写操作优先(即当前有线程...

    同步 读写锁 readwriteLock

    读写锁的设计实现等.。。。。。。。。。。。。。。。。。。。。

Global site tag (gtag.js) - Google Analytics