java map 线程安全_Map线程安全的四种实现方法

java map 线程安全_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

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 conMap = new ConcurrentHashMap();

比较:

1、不同步确实最快,与预期一致。

2、四种同步方式中,ConcurrentHashMap 是最快的,接近不同步的情况。

3、synchronized 关键字非常慢,比使用锁慢了两个数量级。如果需自己实现同步,则使用 JDK1.5 提供的锁机制,避免使用 synchronized 关键字。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228704.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午6:23
下一篇 2026年3月16日 下午6:24


相关推荐

  • bowtie和bowtie2用法详解

    bowtie和bowtie2用法详解bowtie 短序列比对工具详解常见的短序列比对工具有很多 如 fasta blast bowtie shrimp soap 等 每个工具都有其自身的优点 但同时也具备了一些缺点 权衡利弊 我选择 bowtie 作为主要的短序列比对工具 它速度很快 比对结果也容易理解 现在举个例子来探讨 bowtie 的使用方法 现在有 GENOME fa 高通量测序数据 Reads fa 我们希望将 Reads fa 比对到

    2026年3月19日
    1
  • 专为智能体而生:Bitdeer AI Cloud已支持NVIDIA Nemotron 3 Super

    专为智能体而生:Bitdeer AI Cloud已支持NVIDIA Nemotron 3 Super

    2026年3月14日
    3
  • 外层循环和内层循环的关系_内层电子跃迁与外层电子跃迁

    外层循环和内层循环的关系_内层电子跃迁与外层电子跃迁解决eleui外层表格可以全选内层表格问题之前做项目发现外层表格全选时候想全选内层表格,有用过toggleRowSelection,但是发现内层表格未打开时,无法触发内层表格的ref,所以我找了别的解决方法。<el-table-columnwidth=”20″><templateslot-scope=”scope”><divv-if=”scope.row.quantity==0″@click=ch

    2025年6月28日
    4
  • safeurl php,关于php的allow_url_fopen和safe_mode函数

    safeurl php,关于php的allow_url_fopen和safe_mode函数安装dedecms时注意到系统需要两个函数,所以顺便看一下这两个函数的定义:allow_url_fopen就是允许fopen这样的函数打开url。这里有更官方的解释:http://php.com/manual/zh/filesystem.configuration.phpsafe_modephp的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),同时把很多文件…

    2022年7月16日
    19
  • 【Pytest】python单元测试框架pytest简介

    【Pytest】python单元测试框架pytest简介1 Pytest 介绍 pytest 是 python 的一种单元测试框架 与 python 自带的 unittest 测试框架类似 但是比 unittest 框架使用起来更简洁 效率更高 根据 pytest 的官方网站介绍 它具有如下特点 非常容易上手 入门简单 文档丰富 文档中有很多实例可以参考能够支持简单的单元测试和复杂的功能测试支持参数化执行测试过程中可以将某些测试跳过 或者对某些预期失败的 case

    2026年3月16日
    2
  • C使用VS2019打包安装程序(图标修改和默认安装路径修改)

    C使用VS2019打包安装程序(图标修改和默认安装路径修改)这次主要是记录一下我在 C 打包时遇到的一些坑 环境 Vs2019 C 要打包安装程序 第一件事就是去扩展 管理扩展里面下载 installerPro 就是这搜索列表里面的第一个 如果不能安装 自己就去网上找一下来安装 首先这个 installer 好像版本有些老了 所以只支持 netFramework 6 1 所以请把你本身的代码框架修改成 netFramework

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号