Map集合线程安全的几种实现

Map集合线程安全的几种实现  

2011-08-06 15:08:54|  分类: Java |  标签:map集合  线程安全  |字号 订阅

 
 原文地址:
Map集合线程安全的几种实现
Java
1、使用 synchronized 关键字,代码如下 
synchronized(anObject) {   
    value = map.get(key);}  
2、使用 JDK1.5提供的锁(java.util.concurrent.locks.Lock)。代码如下 
lock.lock();   
value = map.get(key);   
lock.unlock();  
3、使用 JDK1.5 提供的读写锁(java.util.concurrent.locks.ReadWriteLock)。代码如下 
rwlock.readLock().lock();   
value = map.get(key);   
rwlock.readLock().unlock();  
这样两个读操作可以同时进行,理论上效率会比方法 2 高。 
4、使用 JDK1.5 提供的 java.util.concurrent.ConcurrentHashMap 类。该类将 Map 的存储空间分为若干块,每块拥有自己的锁,大大减少了多个线程争夺同一个锁的情况。代码如下 
value = map.get(key); //同步机制内置在 get 方法中 
5.还有一种运用Collections类中的静态方法,运用同步方法封装非同步集合: 
public static Map synchronizdMap(Map m)
posted @ 2013-04-11 10:53  但用此心  阅读(604)  评论(0编辑  收藏  举报