gpt4 book ai didi

locking - 如何使用榛铸锁

转载 作者:行者123 更新时间:2023-12-01 19:15:47 25 4
gpt4 key购买 nike

我必须将使用旧版本 hazelcast 的应用程序升级到最新版本之一。有一些 hazelcast 锁功能已被弃用并从 API 中完全删除。特别是,旧的锁定功能的工作方式如下:

Hazecast.getLock(myString);

getLock 函数是 Hazelcast 上的静态方法。现在它将被替换为:

hazelcastInstance.getLock(myString);

...其中锁来自集群中的实例之一。

我的问题是,我可以使用 hazelcast 集群中的任何一个实例来获取锁吗?如果是这样,这会锁定所有实例吗?

最佳答案

Q1:是的,您可以使用 hazelcast 集群中的任何一个实例来获取锁( ILock )。

你可以想到ILock在 hazelcast 框架中作为 java.util.concurrent.locks.Lock 的分布式实现。更多详情请参见

http://docs.hazelcast.org/docs/3.5/javadoc/com/hazelcast/core/ILock.html

Q2:如果使用 ILock 锁定关键部分,那么 protected 临界区保证在给定时间点仅由整个集群中的一个线程执行。因此一旦lock()方法由 Thread1 调用在一个节点中,其他线程(也在其他节点中)将等待,直到锁被释放。

示例代码:

HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
Lock testLock = hazelcastInstance.getLock( "testLock" );
testLock.lock();
try
{
// critical section code.
}
finally
{
testLock.unlock();
}

关于locking - 如何使用榛铸锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32892497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com