java代码如何使Map容器线程安全呢?

java-教程王 Java经验 发布时间:2022-04-09 10:27:08 阅读数:19885 1
下文笔者讲述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速度最快
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202204/16494717052805.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者