文档章节

ConcurrentHashMap

百花
 百花
发布于 2017/02/28 19:49
字数 323
阅读 5
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

  • 支持全面的检索并发
  • 支持高度可指望的更新并发
  • 所有的操作都是ThreadSafe的
  • 检索操作不需要锁
  • 不提供任何锁住全表的支持
  • 在并发安全方面,和HashTable是通用的(在同步机制方面不是)
  • 检索动作是不锁的,所以可能和更新或者删除动作重叠(并发)
  • 检索操作能够检索出大多数的最近更新
  • 检索之前的更新动作,都可以在检索的时候见所属更新后的结果
  • 对于putAll 或者clear 等聚合操作,并发的检索动作只能反映出部分结果
  • 通常情况下,Iterators, Spliterators and Enumerations 只能反映出特定时间点的表状态(数据),或者只能反映出建立 迭代器(等)之前的状态(数据)
  • 不抛出 ConcurrentModificationException
  • 然而,迭代器(Iterators)被设计成每次只有一个线程在使用(one thread at a time)
  • 谨记,一些聚合方法比如size(),isEmpty(),containsValue(),只有在没有其他线程并发更新的情况下在有用(有实际意义),否则这些方法的结果只反映了一个瞬时的状态结果,并不觉有绝对的意义
  • todo 源码doc 看到了136行
  • todo

© 著作权归作者所有

上一篇: CAP BASE ACID
下一篇: TODO Object
百花
粉丝 1
博文 67
码字总数 25011
作品 0
海淀
架构师
私信 提问
加载中

评论(0)

暂无文章

设计模式三大分类+六大基本原则

1. 三大分类 1.1 创建型模式 工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式 1.2 结构型模式 适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式 1.3 行为型模式...

steven-黄笑笑
20分钟前
14
0
多线程基础学习

线程和进程有区别? 进程=加载上下文+执行程序+保存上下文 进程属于资源分配的最小单位,线程属于执行任务的最小单位。 线程6种状态: 1、New 尚未启动的线程的线程状态。 2、Runnable 可运行...

javazyw
21分钟前
24
0
英文对“ Big O”符号的解释是什么? - What is a plain English explanation of “Big O” notation?

问题: 我希望尽可能少用正式的定义和简单的数学方法。 解决方案: 参考一: https://stackoom.com/question/22l0/英文对-Big-O-符号的解释是什么 参考二: https://oldbug.net/q/22l0/What...

javail
23分钟前
11
0
Spring Cloud升级之路 - Hoxton - 2.入口类注解修改与OpenFeign的改造

本系列示例与胶水代码地址: https://github.com/HashZhang/spring-cloud-scaffold 入口类注解修改 之前的项目,我们也许会用@SpringCloudApplication作为我们入口类的注解。这个注解包括: ...

zhxhash
33分钟前
28
0
怎么将流程图翻转90度?迅捷画图教你全选翻转小技巧!

怎么将流程图翻转90度?在绘制好流程图之后,会接收到各式各样的修改意见,例如将绘制好的流程图翻转90度这样的操作,很多人在执行这个操作的时候,会先选择流程图的单个部分,逐个进行翻转,...

开源312
38分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部