java代码如何使Map容器线程安全呢?
下文笔者讲述java代码使Map线程安全的方法分享,如下所示:
实现思路: 主要采用多线程安全的相应关键字实现Map线程安全例:
方式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(); 方式4使用 JDK1.5 提供的 java.util.concurrent.ConcurrentHashMap 类 该类将 Map 的存储空间分为若干块,每块拥有自己的锁,减少了多个线程争夺同一个锁的情况。代码如下 value = map.get(key); //同步机制内置在 get 方法中
以上四种方式功能对比 不使用锁的map,速度最快 线程安全的方式中,ConcurrentHashMap速度最快
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。