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

  • 相关阅读:
    系统相关的信息模块: import sys
    Mysql 解决emoji表情处理问题
    Servlet 个人理解
    Java BufferImage 获取像素矩阵 或 数组
    SVN 出现 R6034 错误 Python导致异常
    Mycat 入门
    Mycat 入门
    Nginx 架构
    Nginx 架构 性能优化
    Nginx 架构 性能优化
  • 原文地址:https://www.cnblogs.com/shijianchuzhenzhi/p/12904282.html
Copyright © 2011-2022 走看看