繁体   English   中英

Hazelcast IMap put方法获取存储桶或分区或键上的锁?

[英]Hazelcast IMap put method acquires lock on bucket or partition or key?

Hazelcast IMap put方法获取存储桶或分区或键上的锁? java.util.concurrent.ConcurrentHashMap put方法获取存储桶上的锁并写入Map。
而在Hazelcast IMap中,这是java.util.concurrent.ConcurrentHashMap的分布式地图实现,当一个Hazelcast节点执行以下代码时。
imap.put(key, value);
它是否获得对存储桶,分区或密钥的锁定? 请澄清? 我在hazelcast文档中的任何地方都找不到答案。

IMap.put不获取任何锁定。 每个Hazelcast成员都有一组特定的分区,这些分区由许多分区线程处理。 每个分区线程拥有一定数量的分区。 因此,当写操作到达集群成员时,它由拥有该分区的分区线程选择,该分区将是该写操作中Entry对象的宿主。

如果同一个成员收到另一个写操作,该写操作发往同一分区线程拥有的相同或其他分区,则直到该线程的上一个写操作完成后,才会选择它。 这可以防止任何潜在的竞争情况,并且不需要显式锁定默认状态。

一个,但是可以使用IMap API来获取键锁。

请参阅此处以获取有关Hazelcast线程模型的详细信息: https ://docs.hazelcast.org/docs/3.10.5/manual/html-single/index.html#threading-model

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM