Java并发容器Map类有两个,ConcurrentHashMap和ConcurrentSkipListMap,前者是无序的,后者有序。

public class ConcurrentHashMapTest {private static final int len = 20;public static void main(String[] args) {ConcurrentHashMap<String, String> map = new ConcurrentHashMap<>();CountDownLatch latch = new CountDownLatch(len);Thread[] threads = new Thread[len];Random rd = new Random();for (int i=0; i<len; i++) {threads[i] = new Thread(()->{for (int j=0; j<100; j++) {map.put(Thread.currentThread().getName()+" " + j, ""+j);}latch.countDown();});}long startTime = System.currentTimeMillis();for (int i=0; i<len; i++) {threads[i].start();}try {latch.await();} catch (InterruptedException e) {e.printStackTrace();}long endTime = System.currentTimeMillis();System.out.println(map.size());System.out.println(endTime - startTime);}
}

执行上述代码输出:

2000
33

将ConcurrentHashMap 换成 ConcurrentSkipListMap,一样得到map的 size 大小为 2000。

Java 并发编程之 ConcurrentHashMap,ConcurrentSkipListMap相关推荐

  1. Java并发编程之ConcurrentHashMap原理解析

    ConcurrentHashMap get: /*** 根据键值key获取value,根据key.equals方法判断两个元素是否相同* @param key 键* @return 如果key存在则返 ...

  2. Java并发编程之ConcurrentHashMap

    http://blog.csdn.net/hsuxu/article/details/9455563 转载于:https://www.cnblogs.com/hnucdj/p/4321144.html

  3. java并发编程之4——Java锁分解锁分段技术

    转载自 java并发编程之4--Java锁分解锁分段技术 并发编程的所有问题,最后都转换成了,"有状态bean"的状态的同步与互斥修改问题.而最后提出的解决"有状态bea ...

  4. Java并发编程之CAS第三篇-CAS的缺点

    Java并发编程之CAS第三篇-CAS的缺点 通过前两篇的文章介绍,我们知道了CAS是什么以及查看源码了解CAS原理.那么在多线程并发环境中,的缺点是什么呢?这篇文章我们就来讨论讨论 本篇是<凯 ...

  5. zbb20180929 thread java并发编程之Condition

    java并发编程之Condition 引言 在java中,对于任意一个java对象,它都拥有一组定义在java.lang.Object上监视器方法,包括wait(),wait(long timeout ...

  6. Java 并发编程之美:并发编程高级篇之一-chat

    借用 Java 并发编程实践中的话:编写正确的程序并不容易,而编写正常的并发程序就更难了.相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作 ...

  7. Java 并发编程之美:并发编程高级篇之一

    借用 Java 并发编程实践中的话:编写正确的程序并不容易,而编写正常的并发程序就更难了.相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作 ...

  8. Java并发编程之CyclicBarrier详解

    简介 栅栏类似于闭锁,它能阻塞一组线程直到某个事件的发生.栅栏与闭锁的关键区别在于,所有的线程必须同时到达栅栏位置,才能继续执行.闭锁用于等待事件,而栅栏用于等待其他线程. CyclicBarrier ...

  9. java并发编程之AbstractQueuedSynchronizer

    引言 AbstractQueuedSynchronizer,队列同步器,简称AQS,它是java并发用来构建锁或者其他同步组件的基础框架. 一般使用AQS的主要方式是继承,子类通过实现它提供的抽象方法 ...

最新文章

  1. Springboot - -web应用开发-Servlets, Filters, listeners
  2. 计算机二级为什么无法登录,解决因登录失败而无法启动SQL服务
  3. linux常用命令大全(转)
  4. linux superblock 时间,Linux命令(八)
  5. SAP License:SAP顾问的可持续性发展
  6. python ix loc iloc_关于python:.ix()是否总是比.loc()和.iloc()更好,因为它速度更快并且支持整数和标签访问?...
  7. 【模型压缩】知识蒸馏经典解读
  8. Codeforces Round #215 (Div. 2) B. Sereja and Suffixes map
  9. CMake实践(2)
  10. 修改android设备型号
  11. 百度地图只显示行政区划轮廓
  12. python和c 情侣网名_简单情侣网名的介绍
  13. 内网穿透工具 netapp
  14. 野山参怎么吃好,这样炖是不是效果最好
  15. U74LVC1G07G-SOT353R-TG
  16. 设计模式 | 中介者模式(详解)
  17. 【无标题】python利用公式法计算圆周率
  18. 狼人杀超详入门攻略3之各角色玩法
  19. 教育数据大全 1949-2021年全国省级地级市人力资本受教育年限 上市公司教育背景学历结构 教育支出 学校教职工学生
  20. Linux中文件替换命令

热门文章

  1. 【英语学习】【Daily English】U14 Transportation L01There will be a car exhibition next month
  2. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(2) - 32位EFLAGS - 80386(386, Intel386)/80486(486, Intel486)
  3. Android人脸识别开发入门--基于虹软免费SDK实现
  4. tp5中php正则怎么写,详解tp5中phpmailer的使用
  5. VS2005、VS2010等VS系列IDE在MFC开发过程中,Resource View标签打不开,问题为“opened in other editor”
  6. Project Euler 001-006 解法总结
  7. CSM中一些常见问题的解决方式
  8. pgsql查表名_PostgreSQL 查询一个表
  9. 客户端和服务器不支持一般 ssl 协议版本或加密套件。_恶意软件加密通信概要分析...
  10. 海洋泡沫结点图完整分析