zoukankan      html  css  js  c++  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 的存储空间分为若干块,每块拥有自己的锁,减少了多个线程争夺同一个锁的情况。

    Map<Long, String> conMap = new ConcurrentHashMap<Long, String>();

    比较: 
    1、不同步确实最快,与预期一致。 
    2、四种同步方式中,ConcurrentHashMap 是最快的,接近不同步的情况。 
    3、synchronized 关键字非常慢,比使用锁慢了两个数量级。如果需自己实现同步,则使用 JDK1.5 提供的锁机制,避免使用 synchronized 关键字。


    原文链接:https://blog.csdn.net/sswqzx/java/article/details/88954897

  • 相关阅读:
    Promise推荐
    ES6推荐
    vue学习笔记之项目创建流程
    vue学习笔记之环境搭建
    前端知识小总结3
    前端知识小总结2
    JavaScript语言精粹の笔记
    JavaScript修炼之道の笔记
    移动端及vue相关问题
    组件式开发Web App
  • 原文地址:https://www.cnblogs.com/shijianchuzhenzhi/p/12904282.html
Copyright © 2011-2022 走看看