gpt4 book ai didi

java - 如何通过 key 获取锁

转载 作者:行者123 更新时间:2023-12-03 13:09:07 25 4
gpt4 key购买 nike

什么是防止键值设置一个记录的并发更新没有锁定整套的最佳方式?在语义上,我用 key 寻找某种锁定的(理想情况下,Java实现,但不一定):

interface LockByKey {
void lock(String key); // acquire an exclusive lock for a key
void unlock(String key); // release lock for a key
}

这种锁是为了到远程存储的同步访问,所以一些同步的Java集合是不是一种选择。

最佳答案

Guava 有这样的事情存在于13.0释放;如果你喜欢,你可以把它弄出来HEAD的。

Striped<Lock> 或多或少分配锁的具体数量,然后分配字符串基于其散列码锁。该API看起来多少有点像

Striped<Lock> locks = Striped.lock(stripes);
Lock l = locks.get(string);
l.lock();
try {
// do stuff
} finally {
l.unlock();
}

可控的 strip 数量或多或少可让您以内存使用为代价来交换并发性,因为为每个字符串键分配一个完整的锁可能会变得昂贵。本质上,你只能得到锁争用,当你得到哈希冲突,这是(可预测)罕见。

(披露:我贡献 Guava )。

关于java - 如何通过 key 获取锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43273960/

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