- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
由于桶级锁定,当使用 CHM 代替 Collections.synchronizedMap(...)/hashtable 时可以提供性能提升。
当我们不希望我们的迭代器抛出 ConcurrentModificationException 时,我们也可以使用 CHM。
但我对 CHM 上下文中 thread-safe
的含义感到困惑,因为它们不会阻止更改在检索和写入重叠之间得到反射(reflect)?
最佳答案
线程安全意味着您可以在多个线程之间共享一个ConcurrentHashMap
对象,并且可以在没有外部锁定的情况下并发访问/修改该对象。
确切的语义在 documentation 中有解释。 :
Retrieval operations (including
get
) generally do not block, so may overlap with update operations (includingput
andremove
). Retrievals reflect the results of the most recently completed update operations holding upon their onset.For aggregate operations such as
putAll
andclear
, concurrent retrievals may reflect insertion or removal of only some entries. Similarly,Iterators
andEnumerations
return elements reflecting the state of the hash table at some point at or since the creation of the iterator/enumeration. They do not throwConcurrentModificationException
. However, iterators are designed to be used by only one thread at a time.
关于java - ConcurrentHashMap中 'thread-safe'的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11015694/
我偶然发现了 Wikipedia 上的线程安全文章;它区分了几个安全级别,尤其是: Thread safe: Implementation is guaranteed to be free of ra
当我启动 Rails 时,如何摆脱这个警告/错误。 在没有 :safe 选项的情况下调用“加载”——默认为安全模式。 => Booting Thin => Rails 3.2.13 applicati
当我启动 Rails 时,如何摆脱这个警告/错误。 在没有 :safe 选项的情况下调用“加载”——默认为安全模式。 => Booting Thin => Rails 3.2.13 applicati
我正在尝试使用 FCM 和 https://www.simplifiedcoding.net/firebase-cloud-messaging-android/ 上提供的教程向我的应用程序添加通知服务
我正在 VB.net 中寻找“安全”点符号。这样的事情是否存在——在 VB.NET 或任何语言中?我希望能够做的是,在使用 non-nullable 遗留对象时,解决如下问题: “如果有计划,如果有案
我在我的机器上使用 Windows 10 家庭单语言版,这是一个 64 位操作系统。 我已经安装了最新版本的 XAMPP,它在我的机器上安装了 PHP 7.2.7。 我是根据摘自 PHP Manual
我在 XmlDocument class documentation 中看到在 MSDN 上 Any public static ( Shared in Visual Basic) members o
例如,我经常想用 SELECT whatever FROM questions WHERE views * N + votes * M > answers AND NOT(answered) O
在DataStax收购Aurelius之后,自从Titan 1.0.0在2015年9月发布以来,自那时以来几乎没有提交过,所以我想知道在生产中使用TitanDB是否安全。谁能给我一些见识? 最佳答案
给定一个文件: dept4.abc.edu dept3.abc.edu dept2.abc.edu dept1.abc.edu 我知道如何使用以下命令获取从底部开始的第三行: tail -3 file
SELECT TO_NUMBER('*') FROM DUAL 这显然给了我一个异常(exception): ORA-01722: invalid number 有没有办法“跳过”它并获取 0 或 N
我不是在问这些是否真的是随机的。我只是想知道如果两个用户同时点击一个页面他们可以获得相同的随机数吗?我在想,如果我在多核服务器上运行它,我会因为同步或其他原因在很长一段时间内生成相同的随机数吗? pu
我有一个服务器存储来自客户端的数据。每个客户端都在自己的线程中工作,并且拥有一个数据对象。 这个数据对象是一个自定义类,让我们调用包含非特定数据的 Data.java,这可能是一些字节,但通常约为 1
我正在开发一个应用程序,其中我有一个包含 5000 行和 4 列的数据库。 problem_id (int) problem_no (string) problem_title (string) da
我有一个表,其中每行的字段数据都不完整,我想要修复。 这就是我的意思: mysql> CREATE TABLE test ( key INT a CHAR(1),
这个问题已经有答案了: How do JavaScript closures work? (86 个回答) 已关闭 6 年前。 所以,这个代码片段工作起来非常方便,但我对它的工作方式感到有点惊讶。 v
我想 compile C++ extensions to SQL Server , 来自文档 Safe mode: Run verifiably typesafe code; compiled wit
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便它可以重新打开,visit the help center。 关
这种互斥模式是否像我认为的那样安全?如果是这样,你怎么调用它? lock (_lock) { if (_flag) return; else _flag = true; } try {
假设您使用 EntityFramework 作为 ORM,所有这些都封装在一个单独的 DAL 类库中。 您在另一个“公共(public)”类库中有以下 POCO 对象,它在您的 DAL、SL 和表示层
我是一名优秀的程序员,十分优秀!