ConcurrentHashMap 分段锁

news/2024/11/9 0:35:23/

ConcurrentHashMap 继承自AbstractMap类(AbstractMap实现了Map接口),用来替换其他线程安全的Map容器。例如:
HashtableCollections.synchronizedMap(new HashMap<String,String>())

另外,说到ConcurrentHashMap就不能不提一下HashtableHashMap,下边做一下对比:

  • Hashtable是一个线程安全的Map类,其实现了Map接口。
    Hashtable是Java中比较老的Map类,自JDK1.0版本就存在了,其公有方法均使用synchronize关键字修饰,这表示在多线程操作时,每个线程在操作之前都会锁住整个map,待操作完成后才释放,这必然导致多线程时性能不佳;
    Hashtable不能使用null作为key或者value ;
  • HashMap不是线程安全的Map类 ,继承自AbstractMap
    HashMap是Java中最常用的一个Map类了,单线程运行时 性能好、速度快;
    HashMap可以使用null作为key或者value;
  • ConcurrentHashMap使用多segment并发技术,使得并发操作时往往不需要锁住整个map,其多线程性能远超Hashtable
    ConcurrentHashMap不能使用null作为key或者value;

使用

ConcurrentHashMap<String, String> mMap = new ConcurrentHashMap<String, String>();
mMap.put("1", "TP");
mMap.get("1");

参考:
https://zhuanlan.zhihu.com/p/28618718
https://my.oschina.net/hosee/blog/639352


http://www.ppmy.cn/news/662167.html

相关文章

behavios

什么是behavios&#xff1f; behaviors 是小程序中&#xff0c;用于实现组件间代码共享的特性&#xff0c;类似于 Vue.js 中的 “mixins”。 behaviors 的工作方式&#xff1a; 每个 behavior 可以包含一组属性、数据、生命周期函数和方法。组件引用它时&#xff0c;它的属性…

Shapes

系列文章 SFML-windows 篇 SFML-Events explained 篇 SFML-Keyboard, mouse and joystick 篇 SFML-Using OpenGL in a SFML window 篇 SFML-Drawing 2D stuff 篇 SFML-Shapes 篇 SFML-Sprites and textures 篇 文章目录 系列文章一、Introduction二、Common shape properties颜…

ConcurrentHashMap 总结( 上 )

来源&#xff1a;Hosee&#xff0c; my.oschina.net/hosee/blog/675884 并发编程实践中&#xff0c;ConcurrentHashMap是一个经常被使用的数据结构&#xff0c;相比于Hashtable以及Collections.synchronizedMap()&#xff0c;ConcurrentHashMap在线程安全的基础上提供了更好的写…

跨域小结(为什么form表单提交没有跨域问题,但ajax提交有跨域问题)

原文链接&#xff1a;https://www.zhihu.com/question/31592553 ------------------------------------- ------------------------------------------- ------------------------------------ 跨域springmvc http://blog.csdn.net/wabiaozia/article/details/52778335 跨域…

预测算法-三次指数平滑法(Holt-Winters)

指数平滑 一次指数平滑 一次指数平滑法是一种特殊的加权平均法&#xff0c;对本期观察值和本期预测值赋予不同的权重&#xff0c;求得下一期预测值的方法。这种方法既不需要存储全部历史数据&#xff0c;也不需要存储一组数据&#xff0c;从而可以大大减少数据存储问题。其通…

Search

Search 简介 什么时Search Transwarp Search基于开源的Elasticsearch进行开发&#xff0c;在其架构的基础上进行了多种功能优化&#xff0c;并通过Esdrive实现了SQL交互方式。Transwarp Search是一个可扩展的分布式全文搜索和分析引擎。 在TDH中Search主要扮演两个角色。首先…

Sence

■ 关于Scene 一个Scene类(javafx.scene.Scene)对象&#xff0c;是整个Scene的根节点(root) 简单讲&#xff0c;就是所有在窗体里可见的组件都必须包含在scene里 scene只有设置在stage里&#xff0c;它所包含的组件才能显示在窗体 ■ 创建Scene Label lb new Label("t…

huse库

huse笔记 useActionPending(AsyncFunction)返回调用接口以及函数运行状态值 const [waitTime, pendingCount] useActionPending(wait); 接口函数 waitTime 函数运行值 pendingCount 运行时为正 调用异步函数时显示函数运行状态。 useBoolbean(value, methods) method包含on…