wil*_*ing 1 java concurrency multithreading hazelcast
没有测试,因为我被困在火车上,电池没电了...
我需要确定Hazelcast的IMap并发更新是否是线程安全的,更新同一密钥但该密钥的值不同。
例如:
假设我有2个不同的线程更新相同的IMap密钥...
出于所有意图和目的,此映射如下所示:
key: {value1: 1, value2: 2}
Run Code Online (Sandbox Code Playgroud)
一个线程说,
"I am updating value1 to 3"
Run Code Online (Sandbox Code Playgroud)
另一个线程说(同时)
"I am updating value2 to 4".
Run Code Online (Sandbox Code Playgroud)
Hazelcast如何处理呢?
最终结果将如下所示吗?
key: {value1: 3, value2: 4}
Run Code Online (Sandbox Code Playgroud)
Hazelcast使用分区。散列键以找到该条目的正确分区。
每个分区都是单线程的,只有一个分区线程处理每个分区。因此,单个键的两次更新由单个分区线程处理。
如果两个更新的密钥都位于同一分区中,则这些操作将在单个分区线程上顺序执行。如果每个键都位于不同的分区中,则每个更新将由不同的线程处理。
我不太了解您的表示法: key: {value1: 1, value2: 2}->它看起来像是嵌套的地图。
您还说:the same key but different values of that key.->在映射中,每个键只有一个值(除非该值是集合或映射)
| 归档时间: |
|
| 查看次数: |
535 次 |
| 最近记录: |