小编jon*_*nto的帖子

对多个并发数据结构的线程安全访问

如何在保持线程安全的同时访问多个并发数据结构?没有同步可以做到这一点吗?

举个简单的例子:

ConcurrentHashmap m;
CopyOnWriteArrayList l;

public bool enterListNode(int elem) {
    Node node = l.get(elem);
    String key = node.key(); //key is immutable
    int val = node.val(); //val is immutable
    val = m.putIfAbsent(key, val);
    return val;
}
Run Code Online (Sandbox Code Playgroud)

这个例子不是线性化的,因为当我们这样做时putIfAbsent(key, val),这可能(node==l.get(elem))不再是真的.

除了添加锁之外,还有什么方法可以解决这个问题吗?

java concurrency concurrenthashmap

5
推荐指数
1
解决办法
73
查看次数

标签 统计

concurrency ×1

concurrenthashmap ×1

java ×1