我有一张如下所示的 map ...
键值
23 20
32 20 (20+20 =40 , min=23 max=32)
43 18
45 24 (24+18 =42 ,因为 42 >40 所以这里的最小值和最大值将相同,即 43
47 10
56 6 (24 +10 +6 =40) 所以这里最小值 = 45 最大值 = 56
49 2
47 12
所以如上所示,将有一个名为 split 的最终常量,其值为 40
最终 int SPLIT = 40;//这将是可配置的,因为它的值可以更改。
所以我必须实现逻辑,例如如果 map 的值达到 40 然后 map 的第一个键从计算开始的地方开始,他的键正好达到 40wilkl 被选择为最小值和最大值,上面也有解释
除此之外还需要注意,\at 如果总和超过 40,那么我们必须忽略它并将前一个值本身作为 min 和 max,在这种情况下 min 和 max 将相等。
请指教如何在 map 中通过java实现同样的
最佳答案
我会重新设计您的应用程序,使其不需要全局锁。实现您的系统,以便只有一个 JVM 需要锁,其他所有 JVM 都会与它对话以执行所需的操作。
有很多替代方案,使用 ServerSocket、文件锁、数据锁,但恕我直言,这些都很难正确或有效地实现。
关于java - 不同Jvm之间的同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128181/