本文参考:点击打开链接

一、V putIfAbsent(K key, V value);

此方法解释:如果key对应的值value不存在就put,且返回null。如果key对应的值value已存在,则返回已存在的值,且value不能为null,否则会报空指针异常。

测试如下:

private static ConcurrentMap<String, Long> wordCounts = new ConcurrentHashMap<>();public static void main(String[] args) throws InterruptedException, ExecutionException {System.out.println(wordCounts.putIfAbsent("1111", 111L));System.out.println(wordCounts.putIfAbsent("1111", 222L));System.out.println(wordCounts.putIfAbsent("1111", 333L));
}

打印结果如下:

null
111
111

二、参考文章中的方法解释:

public static void increase(String word) {while (true) {Long tempCount = wordCounts.get(word);if (tempCount == null) {  //此处可能有多个线程到达System.out.println("线程=["+Thread.currentThread().getName()+"]已经到达1");// Add the word firstly, initial the value as 1if (wordCounts.putIfAbsent(word, 1L) == null) {System.out.println("线程=["+Thread.currentThread().getName()+"]已经到达2");break;}} else {System.out.println("线程=["+Thread.currentThread().getName()+"]已经到达3");if (wordCounts.replace(word, tempCount, tempCount + 1)) {System.out.println("线程=["+Thread.currentThread().getName()+"]已经到达4");break;}}}}

ConcurrentHashMap使用示例相关推荐

  1. java关于多线程并发和异步操作由浅入深

    目录 前言 一.初识多线程 多线程最基本的两种实现方式 方式一 方式二 多线程优点 二.匿名函数实现无返回值的多线程异步调用 三.CompletableFuture实现多线程异步调用 无返回值的异步调 ...

  2. java hashmap keyset_Java ConcurrentHashMap keySet()用法及代码示例

    Java中的ConcurentHashMap类的keySet()方法用于从哈希映射中包含的关键元素中创建一个集合.它本质上返回键的集合视图,或者我们可以创建一个新集合并将键元素存储在其中. 用法: C ...

  3. HashMap vs ConcurrentHashMap — 示例及Iterator探秘

    2019独角兽企业重金招聘Python工程师标准>>> 如果你是一名Java开发人员,我能够确定你肯定知道ConcurrentModificationException,它是在使用迭 ...

  4. javacurrentmap_Java ConcurrentHashMap.forEach方法代码示例

    import java.util.concurrent.ConcurrentHashMap; //导入方法依赖的package包/类 public static void main(String[] ...

  5. java hashmap putall_Java ConcurrentHashMap.putAll方法代码示例

    import java.util.concurrent.ConcurrentHashMap; //导入方法依赖的package包/类 /** * 生成更新Sql * @param entity * @ ...

  6. 不止JDK7的HashMap,JDK8的ConcurrentHashMap也会造成CPU 100%

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:朱小厮 公众号:朱小厮的博客(ID:hiddenkafka) ...

  7. 震惊!ConcurrentHashMap里面也有死循环,作者留下的“彩蛋”了解一下?

    荒腔走板 大家好,我是why. 时间过的真是快,一周又要结束了.那么,你比上周更博学了吗?先来一个简短的荒腔走板,给冰冷的技术文注入一丝色彩. 上面这张图是我之前在南五环,路过南苑机场的时候拍的. 这 ...

  8. 快速失败Vs安全失败(Java迭代器附示例)

    译者:java达人-卍极客 英文出处:Java Concept Of The Day 英文链接:http://javaconceptoftheday.com/(点击文末阅读原文前往) 转载请标注以上声 ...

  9. 不止 JDK7 的 HashMap ,JDK8 的 ConcurrentHashMap 也会造成 CPU 100%?原因与解决~

    现象 大家可能都听过JDK7中的HashMap在多线程环境下可能造成CPU 100%的现象,这个由于在扩容的时候put时产生了死链,由此会在get时造成了CPU 100%.这个问题在JDK8中的Has ...

最新文章

  1. Nature:“巨型原子”使芯片同时处理和收发量子信息成为可能
  2. 如何让PHP以root权限执行系统命令
  3. 执行sql语句提示[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY......错误的解决办法
  4. php系统维护,软件系统维护主要包含什么
  5. StyleGAN如何定制人脸生成
  6. linux mysql搭建禅道详细教程_linux安装禅道的步骤
  7. 代理模式 委派模式 策略模式_设计模式 - 委派模式
  8. MySQL与Oracle的数据迁移注意事项,另附转换工具链接
  9. 解决方案: NIS+NFS+AUTOFS
  10. ISA2006的部署和无人职守
  11. 贪吃蛇c语言作业ppt,c语言贪吃蛇
  12. 爱快iKuai软路由系统远程升级(从2.5.10系统升级至3.X系列)教程(图文详解)
  13. 深入解析MySQL索引原理
  14. undo和redo日志
  15. c 语言小游戏坦克大战,C++实现坦克大战小游戏EGE图形界面
  16. 动物生存竞争对投资的启示!
  17. 【计网知识点总结】2 物理层
  18. html中测试心理测试的代码,趣味心理测试源码、心理测试_心理测评微信小程序版...
  19. 西瓜微数解析:微博热搜分析,为何金琦队长霸屏热搜!!
  20. 在AD中创建子域和域树

热门文章

  1. 传阿里巴巴和腾讯考虑互相开放生态系统
  2. Linux内核Adaptive-RED实现
  3. BOSHIDA 模块电源的分类(三)
  4. 货币金融学知识重点整理
  5. 北京/杭州内推 | 快手MMU知识图谱中心招聘算法实习生
  6. 【图形基础篇】02 # 指令式绘图系统:如何用Canvas绘制层次关系图?
  7. 近世代数——Part2 群:循环群
  8. 找回放开那三国服务器,常年服务器第一《放开那三国》最强开局
  9. 最新DNDC模型在土地利用变化、未来气候变化下的建模方法及温室气体时空动态模拟实践技术应用
  10. 编辑文章 - 博客频道 - CSDN.NET