我有一个多线程 Java 应用程序,其中方法 [update(key, value)]
更新ConcurrentHashMap
. 对于每个键,接收到的值将多于可以放入映射中的值,因此一旦更新了键,就应该使用等待的线程的最新值来再次更新映射。或者也许有某种锁可以在只有 1 个线程在等待的情况下使用 - 最后一个到达锁的线程(有效地处理已经等待的线程)?重要的是整个地图没有被锁定,这就是为什么我没有在法线周围使用同步块,HashMap
因为即使有线程在密钥 A 上等待,只要没有密钥 B,仍然应该允许更新密钥 B线程已经更新为 B 存储的值。
更简洁地说,如何使用最后接收到的值作为下一次更新来更新接收键值对的速度比更新速度更快的映射?因此,在 A 更新为 1 时,将收到 5、3、6、8 的值,这意味着 A 的下一次更新将是 8。