ConcurrentMap接口

两个实现
ConcurrentHashMap
ConcurrentSkipListMap
支持并发排序功能,弥补ConcurrentHashMap

ConcurrentHashMap
内部使用段Segment,来表示这些不同的部分
每个段,其实就是一个小的HashTable,它们有自己的锁
只有多个修改操作,发生在不同的段上,就可以并发进行

每一个整体分成了16个端Segment
也就是说,最高支持16个线程的并发修改操作

在多线程的场景时,减小锁的粒度,从而降低锁竞争的一种方案
并且,代码中大多数共享变量,使用volatile关键字
目的是第一时间,获取修改的内容,性能非常好

package com.bjsxt.base.coll013;import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.locks.ReentrantReadWriteLock;public class UseConcurrentMap {public static void main(String[] args) {ConcurrentHashMap<String, Object> chm = new ConcurrentHashMap<String, Object>();chm.put("k1", "v1");chm.put("k2", "v2");chm.put("k3", "v3");chm.putIfAbsent("k4", "vvvv");// System.out.println(chm.get("k2"));// System.out.println(chm.size());for (Map.Entry<String, Object> me : chm.entrySet()) {System.out.println("key:" + me.getKey() + ",value:" + me.getValue());}}
}

运行

ConcurrentMap接口相关推荐

  1. javacurrentmap_Java 8 并发: 原子变量和 ConcurrentMap

    AtomicInteger java.concurrent.atomic 包下有很多原子操作的类. 在有些情况下,原子操作可以在不使用 synchronized 关键字和锁的情况下解决多线程安全问题. ...

  2. java concurrentmap原理_Java集合番外篇 -- ConcurrentHashMap底层实现和原理

    概述 距离上一次集合篇结束已经过了好久了, 之前说要写一下番外,但是太忙了,总也找不出相对松散的时间,也有点静不下心来,最近花了点时间,于是便有了这篇博客. 在开始之前先介绍一个算法, 这个算法和Co ...

  3. Java 8 并发: 原子变量和 ConcurrentMap

    原文地址: Java 8 Concurrency Tutorial: Atomic Variables and ConcurrentMap AtomicInteger java.concurrent. ...

  4. Java并发包:ConcurrentMap

    转载自  Java并发包:ConcurrentMap 文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html  抽空翻译了一下 ...

  5. jdk8 接口默认方法_JDK 8中方便的新地图默认方法

    jdk8 接口默认方法 Map接口在JDK 8中提供了一些方便的新方法 . 因为我在本文中介绍的Map方法是作为默认方法实现的,所以Map接口的所有现有实现都享有在默认方法中定义的默认行为,而无需任何 ...

  6. java 取整型的低八位_Java 基础(十五)并发工具包 concurrent

    本文目录: java.util.concurrent - Java 并发包简介 阻塞队列 BlockingQueue 数组阻塞队列 ArrayBlockingQueue 延迟队列 DelayQueue ...

  7. 【转载】并发数据结构

    2019独角兽企业重金招聘Python工程师标准>>> 本文转载自http://shift-alt-ctrl.iteye.com/blog/1841084 请首先参考:http:// ...

  8. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  9. 深入剖析ConcurrentHashMap(1)

    refer address:http://hongjiang.info/java-concurrent-hashmap-1/ ConcurrentHashMap是Java5中新增加的一个线程安全的Ma ...

最新文章

  1. 11 个 Linux 终端命令,没用过的快去试试吧!
  2. html5实践开发教程,HTML5基础与实践教程
  3. 干货!一次kafka卡顿事故排查过程
  4. MySQL数据库-笔记05【查询练习题*25道(附解析)】
  5. 基础编程题之查找组成一个偶数最接近的两个素数
  6. JavaScript学习(五十二)—继承、call方法和apply方法
  7. 计算机维修基本题,计算机组装与维护试题库附答案.doc
  8. MFC 视频播放器实现局部放大功能
  9. windows c++ 服务 当前用户提权_关于Windows下的提权方式(上)
  10. HTML5视频放完自动跳转,炫酷html5 网站视频自动跳转代码,零基础秒学
  11. java对字符串编码转换_(转) Java字符编码转换
  12. Layui表单自定义验证规则
  13. 搜狗新闻语料库 python正则表达式 新闻内容提取
  14. TOM邮箱超级靓号来袭,12年送12年开始抢注了哦~
  15. 差影-Variation Model
  16. activemq启动错误:ERROR | Temporary Store limit is 51200 mb, whilst the temporary data directory
  17. 工作能力强的人,都有哪些特点?
  18. python画流星_用python一起来看流星雨
  19. File文件的属性设置
  20. (1.5.1.3)编程之美:一摞烙饼的排序

热门文章

  1. C#创建带参数的线程
  2. [Eclipse]代码已被写入关于如何切换到unix在新行
  3. mac 下launchpad超级慢的问题
  4. sql getdate() 时间格式设置
  5. 人的执念真的是非常的可怕
  6. [ZZ88]送给即将毕业奔三的男人们的16条忠告
  7. BLE-NRF51822教程6-创建一个自己的服务
  8. Word2Vec中文语料实战
  9. 《Fabric 云存储的电子健康病历系统》(1)系统介绍
  10. 机器学习(六)——优化器