Kotlin 中的并发哈希图

问题描述 投票:0回答:3

是否可以纯粹用 Kotlin 实现并发哈希映射(不依赖 Java)?我是 Kotlin 新手,看起来 kotlin.collections 中没有明显可用的 API。

kotlin data-structures hashmap concurrenthashmap
3个回答
0
投票

没有纯粹用 Kotlin 实现的方便的并发哈希映射。 真正的并发哈希表非常难以构建,我不建议任何人尝试。

一般来说,几乎可以肯定最合适的做法——尤其是在 Kotlin 多平台空间中——就是简单地用一个简单的互斥体(可能是一个标准的协程互斥体)包装一个普通的 MutableMap。 对于 KMP 可能使用的环境来说,这通常应该表现得足够好。


-1
投票

您可能可以转换源代码而不会出现太多问题。它是免费提供的,例如这里。 Kotlin 多平台的并发模型(我猜这是你的目标,如果你只针对 JVM,则没有必要重新实现它)与 Java 使用的并发模型有点不同,例如没有锁。但这没有理由阻止它。

以下资源也可能对您的实施有所帮助:


-2
投票

你可以尝试:

val emitters: ConcurrentMap<String, Any> = ConcurrentHashMap()

// get
  val obj: Any = emitters[email]

// put:
  emitters[email] = this

// delete
  emitters.remove(email)

这样,你不需要向你的项目添加任何库

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.