gpt4 book ai didi

java - FastMap 大小 > 0 但只有一个元素

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:14 25 4
gpt4 key购买 nike

我在多线程服务中使用 FastMap shared()。有时 map 会崩溃。它显示 size > 1,但是当我尝试获取元素时,我得到 null。我总是只在第一个位置获取元素,其他元素为 null。我尝试获取 value() 但也只获取一个元素和 size > 1

有什么解决办法吗?或者也许使用其他 map ?

关于服务:在 map 上我保持连接到套接字用户。多个线程可以读取或写入映射。我需要线程安全映射。 FastMap 工作完美,直到崩溃。它在随机时间崩溃。它可以工作 1 周或 1 小时。

最佳答案

Sometimes map crash. It show size > 1, but when I try get an element I get null.

要真正回答这个问题,您必须提供有关该问题的更多详细信息,并可能提供一些代码示例。具体来说,您应该提供您看到的异常。

一个可能的问题是,尽管您正在使用 new FastMap<Foo, Bar>().shared()意识到这并不能完全保护您免受代码中的竞争条件的影响,这一点非常重要。如果您正在执行以下操作,那么它会解释您所看到的内容:

// even though this shows stuff in the map
if (map.size() > 0) {
// by the time we get here, it might have been removed so this throws
entry = map.entrySet().iterator().next();
}

您的代码需要考虑到多个线程(我假设)正在从 map 中添加和删除,因此如果您在 map 上执行两个操作,则 map 的状态可能会在它们之间发生变化。

希望这有帮助。如果您为问题添加更多详细信息,我们应该能够提供更具体的帮助。

关于java - FastMap 大小 > 0 但只有一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39765610/

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