关于ConcurrentHashMap, thread-safe的问题

问题描述

我知道ConcurrentHashMap是thread-safe.如果map是一个ConcurrentHashMap我的问题是:map.put(a,newB());上面语句,如果b的构造函数需要引用map的内容,请问上面的内容还是thread-safe吗?也就是说,假设构造B需要一定的时间,在构造完B后,map的内容会不会改变?

解决方案

本帖最后由 kolapig 于 2010-11-24 08:16:15 编辑
解决方案二:
让map不变是不可能的。但他的变化,绝对不是无意义。线程安全与否,要看你的原子操作(可以是一组)的语义。你现在的这几行代码,map是可能变化的,但map的状态,在各线程中是一致的。也就是说,同步,有时候是为了,防止并发修改;有时候也时为了保证他在其他线程的可见性(一个线程写,多个线程读)。

时间: 2024-10-02 17:04:18

关于ConcurrentHashMap, thread-safe的问题的相关文章

PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析

一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择 PHP5.3 的 VC9 版本和 VC6 版本 VC6 版本是使用 Visual Studio 6

PHP 5.3的VC9、VC6、Thread Safe、Non Thread Safe有什么区别

PHP一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择 PHP5.3 的 VC9 版本和 VC6 版本 VC6 版本是使用 Visual Studi

解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思

PHP现在推出5.3.0版本了,不过下载的时候有几个不同版本选择.那就是VC6 X86和VC9 X86. 首先我来解答: VC6是什么?VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的. VC9是什么?VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的. 那我们如何选择下载哪个版本的PHP呢? 如果你是在windows下使用Apache+PHP的,请选择VC6版本: 如果你是在windows下使

PHP版本VC6与VC9/VC11/VC14、Thread Safe与None-Thread Safe等的区别

原文:PHP版本VC6与VC9/VC11/VC14.Thread Safe与None-Thread Safe等的区别        最近正好在弄一个PHP的程序,在这之前一直没有怎么以接触,发现对PHP版本知识了解不是很清楚,自己看了不少类似的文章,还是感觉不够明确和全面,        网上的结论又都是模棱两可,在此,给出最完整甚至武断的解释.(内面部分内容是摘自其它程序员的博文)       本文讲解:VC6与VC9,Thread Safety与None-Thread Safe,Apache

PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析_php技巧

一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择 PHP5.3 的 VC9 版本和 VC6 版本 VC6 版本是使用 Visual Studio 6

PHP5.3的VC9、VC6、Thread Safe、Non Thread Safe的区别

PHP5.3的VC9.VC6.Thread Safe.Non Thread Safe的区别 PHP一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择

解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思_php技巧

PHP现在推出5.3.0版本了,不过下载的时候有几个不同版本选择.那就是VC6 X86和VC9 X86.首先我来解答: VC6是什么?VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的. VC9是什么?VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的.那我们如何选择下载哪个版本的PHP呢?如果你是在windows下使用Apache+PHP的,请选择VC6版本:如果你是在windows下使用IIS

PHP版本VC6和VC9、Non Thread Safe和Thread Safe的区别

链接:http://www.cnblogs.com/neve/articles/1863853.html 想更新个PHP的版本,PHP的windows版本已经分离出来了,见http://windows.php.net/download/,但是上面有很多不同的版本,包括VC9, VC6,  x86 Non Thread Safe, x86 Thread Safe, 好像没有x64版本的,(现在特别喜欢用64位的软件),版本有点多,主要的区别和如何选择不同的版本如下: If you are usin

php vc6 vc9:PHP版本VC6与VC9、Thread Safe与None-Thread Safe等的区别

最近发现很多PHP程序员对PHP版本知识了解不是很清楚,自己也看了不少类似的文章,还是感觉不够明确和全面,网上的结论又都是模棱两可,在此,给出最完整甚至武断的解释.本文讲解:VC6与VC9,Thread Safety与None-Thread Safe,Apache module与fastcgi的区别与选择.PHP的大版本主要分三支:PHP4/PHP5/PHP6其中,PHP4由于太古老.对OO支持不力已基本被淘汰,请无视PHP4.PHP6由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能

WinForms UI Thread Invokes: An In-Depth Review of Invoke/BeginInvoke/InvokeRequred

  国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为"中国PE第一股",市值超1000亿元.    --------------------------------------------------------------------------