第一种,加锁

  1. HashMap<String, String> map = new HashMap<String, String>();
  2. synchronized(map)
  3. {
  4. if(map.containsKey("xxx"))
  5. {
  6. map.put("key", "value");
  7. }
  8. }

第二种,封装HashTable

  1. public synchronized void putIfAbsent(String key, String value)
  2. {
  3. if(map.containsKey("xxx"))
  4. {
  5. map.put("key", "value");
  6. }
  7. }

第三种, 使用ConcurrentHashMap

第四种,Collections.synchronizedMap()方法

本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/617285,如需转载请自行联系原作者

线程安全操作HashMap相关推荐

  1. 非线程安全的HashMap 和 线程安全的ConcurrentHashMap

    在平时开发中,我们经常采用HashMap来作为本地缓存的一种实现方式,将一些如系统变量等数据量比较少的参数保存在HashMap中,并将其作为单例类的一个属性.在系统运行中,使用到这些缓存数据,都可以直 ...

  2. [集合]线程安全的HashMap

    一.一般模式下线程安全的HashMap 默认情况常用的HashMap都是线程不安全的,在多线程的环境下使用,常常会造成不可预知的,莫名其妙的错误.那么,我们如何实现一个线程安全的HashMap呢?其中 ...

  3. Java之通过Collections.synchronizedMap创建线程安全的HashMap

    1 问题 我们知道hashMap线程是不安全的,一般而言,我们怎么创建线程安全的HashMap呢? 2 解决办法 我们可以使用Collections.synchronizedMap来创建HashMap ...

  4. C#线程间操作无效: 从不是创建控件 XX 的线程访问它

    转自:http://www.arasplm.net/index.php/zh/community/myblog/c-xx-.html 前些天做的要使用到线程的项目,现在和大家分享一下感受! 以下面小列 ...

  5. 黄聪:BackGroundWorker解决“线程间操作无效: 从不是创建控件的线程访问它” (C# VS2008)...

    在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选.这个时候程序会卡,当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作 ...

  6. 线程间操作无效: 从不是创建控件的线程访问它

    转自原文 线程间操作无效: 从不是创建控件的线程访问它. using System; using System.Collections.Generic; using System.ComponentM ...

  7. 用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它...

    //创建一个委托,是为访问listbox控件服务的.public delegate void UpdateTxt(string msg);//定义一个委托变量public UpdateTxt upda ...

  8. C# 采用系统委托的方式处理线程内操作窗体控件(转载)

    C# 采用系统委托的方式处理线程内操作窗体控件 C# / asp.net / j 2009-12-25 10:04:47 阅读138 评论0   字号:大中小 订阅 一.System.Windows. ...

  9. Win64 驱动内核编程-11.回调监控进线程句柄操作

    无HOOK监控进线程句柄操作 在 NT5 平台下,要监控进线程句柄的操作. 通常要挂钩三个API:NtOpenProcess.NtOpenThread.NtDuplicateObject.但是在 VI ...

最新文章

  1. iOS-消除CocoaPods内容警告
  2. 下面哪个字段是http请求中必须具备的_HTTP协议及其工作原理介绍
  3. java B2B2C Springboot多租户电子商城系统-spring-cloud-eureka-consumer...
  4. 微信小程序 时间操作
  5. RuntimeException: Package manager has died
  6. 离散数学实验题目-图
  7. [Lintcode]66. Binary Tree Preorder Traversal/[Leetcode]144. Binary Tree Preorder Traversal
  8. 记录一次挖坑过程,idea git 代码分支合反了,如何补救
  9. NLP常见语言模型总结
  10. Kibana:更有效地构建 Kibana 仪表板 - 7.12 发布
  11. 华为网络篇 BPDU报文格式-11
  12. Android开发 之 OpenGL ES系列(5--3D立体图形)
  13. 迷你世界 Java_迷你世界VS我的世界,两者之间有何区别?网友:更爱迷你
  14. py233基于 python的诚交大学生二手交易平台Django#毕业设计
  15. 二进制部署kubernetes 1.25.5(二)
  16. java反射字段6,java反射判断字段类型
  17. JODD与数据页面绑定
  18. atthesametime啥意思_atthesametime是什么意思啊?a – 手机爱问
  19. 互联网产品经理阅读书目
  20. Android电话拨号器实例详解

热门文章

  1. vue+elementui项目打包后样式变化问题
  2. python xml字符串和dict字典互转
  3. 车辆计数--FCN-rLSTM: Deep Spatio-Temporal Neural Networks for Vehicle Counting in City Cameras
  4. IDEA 2019 生成Spring Boot项目,编写第一个Hello World程序,并打包成jar
  5. 装管家婆系统要开启那些服务器,管家婆服务器维护注意的一些事项?
  6. Java 批量文件不打包下载_【Java】Java批量文件打包下载zip
  7. 2020年班级管理html,2020年七年级班主任工作计划
  8. win10系统的qq无网络连接网络连接到服务器,Win10系统下误报无法连接internet该怎么办?新手速看...
  9. [k8s] 第十章 DashBoard
  10. android.os.NetworkOnMainThreadException异常