gpt4 book ai didi

multithreading - 线程安全的内存缓存

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

我的 Scala 应用程序中需要一个简单的线程安全内存缓存。

我需要一个支持来自 scala.collection.mutable.MapLike 的此操作的数据结构:

def getOrElseUpdate(key: A, op: => B)

我希望这个操作是原子的。此操作在 scala.collection.concurrent.TrieMap 中是原子操作吗?或者我应该使用其他数据结构?

我使用 Scala 2.10,但可能很快就会升级到 2.11。

我不想使用 scala.collection.mutable.SynchronizedMap,因为它在 Scala 2.11 中已弃用。

最佳答案

TrieMap适合这种情况

A concurrent hash-trie or TrieMap is a concurrent thread-safe lock-free implementation of a hash array mapped trie.

并且TrieMap中的getOrElseupdate使用起来是线程安全的。所以是的,你应该使用它。根据this ,当插入率非常高时,triemap 实际上很棒。虽然很难观察到差异。

关于multithreading - 线程安全的内存缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25867812/

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