java hashmap读,java – ConcurrentHashmap – 读取和删除

你是对的.如果这个Map可以被多个线程修改,那么对chm.get(key)的第一次调用可能会返回一个非null值,而第二次调用将返回null(由于从Map完成的Map中删除了键)另一个线程),因此chm.get(key).doSomething()将抛出一个NullPointerException.

您可以使用局部变量来存储chm.get(key)的结果,从而使此代码线程安全:

ConcurrentHashMap chm = new ConcurrentHashMap();

Integer value = chm.get(key);

if(value != null) {

value.doSomething(); // P.S. Integer class doesn't have a doSomething() method

// but I guess this is just an example of calling some arbitrary

// instance method

chm.remove(key);

}

顺便说一句,即使Map不是ConcurentHashMap并且只有一个线程可以访问它,我仍然使用局部变量,因为它比调用get()方法两次更有效.

编辑:

如下面所述,此修复程序不会阻止doSomething()被不同的线程多次调用相同的键/值.这是否是所期望的行为并不清楚.

如果您希望防止多个线程为同一个键/值调用doSomething()的可能性,您可以使用chm.remove(key)来删除键并在同一步骤获取值.

然而,这会冒一些键/值根本不会执行doSomething()的风险,因为如果第一次调用doSomething()导致异常,则不会再由另一个线程调用doSomething(),因为键/值对将不再出现在Map中.另一方面,如果仅在doSomething()成功执行后从Map中删除键/值对,则保证doSomething()至少成功执行一次,以便从Map中重新发送所有键/值对.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云与智慧产业总裁汤道生:产业互联网是一场“持久战”

“产业互联网是一场‘持久战’,腾讯希望和合作伙伴一起参与转型,让每一个产业都变身为智慧产业,实现数字化、网络化和智能化。”10月29日,在腾讯全球数字生态大会成都峰会上,腾讯公司高级执行副总裁、云与智慧产业事业…

NLP领域中更有效的迁移学习方法

在深度学习领域,迁移学习(transfer learning)是应用比较广的方法之一。该方法允许我们构建模型时候不光能够借鉴一些其它科研人员的设计的模型,还可以借用类似结构的模型参数,有些类似于站在巨人的肩膀上进行深入开发。…

使用wsimport将wsdl生成java

使用管理员打开cmd wsimport -encoding utf-8 -keep -s D:\temp -p com.lamcy.webService -verbose http://服务地址?wsdl -encoding : 指定编码格式 -keep:是否生成java源文件 -d:指定.class文件的输出目录 -s:指定.java文件的输出目录…

使用python创建自己的第一个神经网络模型吧!

神经网络(NN),也被称为人工神经网络(ANN),是机器学习领域中学习算法的子集,大体上借鉴了生物神经网络的概念。目前,神经网络在计算机视觉、自然语言处理等领域应用广泛。德国资深机器…

数据 正则化 python_python3.6怎么单独正则化/标准化DataFrame中的指定列数据

问 题问题:读入一个excel表后,想要正则化(标准化)其中的某一列数据,还试过单独正则化后,再把两个DataFrame拼接的,用过insert和cancat,append这些,但是因为索引对不上号,不能直接拼到…

百度现场面试:JVM+算法+Redis+数据库!(三面)| CSDN博文精选

戳蓝字“CSDN云计算”关注我们哦!作者 | 中琦2513转自 | CSDN博客责编 | 阿秃百度一面(现场)自我介绍Java中的多态为什么要同时重写hashcode和equalsHashmap的原理Hashmap如何变线程安全,每种方式的优缺点垃圾回收机制…

语义分割概念及应用介绍

近年来,以深度学习为中心的机器学习技术引起了人们的关注。比如自动驾驶汽车已经逐渐成为可能,但在整个深度学习过程,需要算法识别和学习作为原始数据提供的图像,在这一过程中,应用到了语义分割技术。下面让我们来看看…

(需求实战_终章_08)SSM集成RabbitMQ 订阅模式 关键代码讲解、开发、测试

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200208221057640.png?x-oss-processimage/watermark,type_Z 首先,confirm确认机制和return确认机制都是相对于生产者而言的, 生产者发送消息一般会有消息发送成功和消息发送失败两种场景。 生产者…

新零售基础设施 看阿里巴巴如何打“地基”

经过两年探索,“新零售”从星星之火已发展到现在的燎原之势,许多原有的传统模式正在被打破,先进的智能技术和数据正在给传统的零售赋予更多的能力,带来更大的想象空间。 在2018年杭州云栖大会的电商平台专场中,阿里巴…

华为自研5G关键芯片PA:明年量产不再依赖美国;1999元!苹果发布AirPods Pro ;腾讯云勇推自研服务器“星星海”……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周两次,打卡即read更快、更全了解泛云圈精彩newsgo go go小米CC9 Pro概念图&#xff0…

python解常微分方程_Python-sympy.dsolve求解常微分方程(组)

这里分别介绍怎么利用sympy.dsolve求解常微分方程和常微分方程组。#首先利用sympy.dsolve求解单个的常微分方程:#代码from sympy import Function, dsolve, Derivative, symbolsfrom sympy.abc importt#sympy.abc表示This module exports all latin and greek lette…

Work@Alibaba 阿里巴巴的企业应用构建之路

作为一个拥有数万名员工的企业,阿里巴巴的企业信息化是怎么做的? 在上周的云栖大会上,来自阿里巴巴信息平台的资深技术专家叶建辉为大家揭开了谜底。 阿里员工是怎么工作的? 可以通过阿里巴巴这三个案例了解: 人脸门禁。今年云…

windows server 2019 服务器搭建的方法步骤(图文)

一、windows server 2019 安装 Vmware 下安装 windows server 2019 。 二、服务器配置 1、 先启用远程功能 右键点击【此电脑】–【属性】,进入“【控制面板\系统和安全\系统】”,点击-【远程设置】 计算机找不到就使用【winE】快捷键 2、在“远程…

传统企业装上“智慧大脑” 看阿里巴巴如何实践AI赋能

“我们找了8位专业律师,和我们的AI机器人做了一个对比,我们的召回率与8位律师相当,但我们的准确率更高些”。 在不久前刚结束的杭州云栖大会上,来自阿里巴巴信息平台事业部的资深算法专家李波,正在向观众展示阿里巴巴…

如何交付机器学习项目:一份机器学习工程开发流程指南

随着机器学习(ML)成为每个行业的重要组成部分,对机器学习工程师(MLE)的需求急剧增长。MLE需要将机器学习技能与软件工程专业知识相结合,为特定应用程序找到高性能的模型,并应对出现的实施挑战—…

国际顶级学界业界大咖云集,9 场技术论坛布道,2019 嵌入式智能国际大会强势来袭!...

2019 嵌入式智能国际大会即将来袭!购票官网:https://dwz.cn/z1jHouwE2019年12月6日-8日,2019嵌入式智能国际大会将在深圳华侨城洲际大酒店举行。本次大会由哈尔滨工业大学(深圳)、清华大学国际研究生院、CSDN、嵌入式视…

qtcreator下拉列表怎么制作_设置EXCEL动态下拉菜单,只需要一个组合键,新手也能快速掌握...

操作版本:OFFICE365在EXCEL制作一级下拉菜单有4种方法,你掌握几种?一文中,我提到了一级下拉菜单的制作方法,其中用公式法来制作下拉菜单可以实现内容增减后下拉菜单的内容也自动增减,这个方法涉及OFFSET函数…

使用Numpy和Opencv完成图像的基本数据分析(Part III)

引言 本文是使用python进行图像基本处理系列的第三部分,在本人之前的文章里介绍了一些非常基本的图像分析操作,见文章《使用Numpy和Opencv完成图像的基本数据分析Part I》和《使用Numpy和Opencv完成图像的基本数据分析 Part II》,下面我们将…

Microsoft Windows Server 2019 1809 iso镜像 企业版本

企业版本 标准版本 默认页面,关闭即可 参考链接: Microsoft Windows Server 2019 1809 iso镜像 http://www.ddooo.com/softdown/131736.htm