我们有一个双场类型的机场仓,需要在高负荷条件下增加。到目前为止,它的运作良好,使用原子增量操作提供的民用航空公司。
不幸的是,现在我们不得不使用BigInteger,而不是双倍,而且现在还没有从飞机上增加原子。
如果性能是最重要的点,并且更新请求更有可能以并发方式出现,则建议采用哪种方法。提前谢谢你。
发布于 2022-09-06 09:10:14
一种选择是使用AtomicReference。
你可以做这样的事。
AtomicReference<BigInteger> r = new AtomicReference<>();
BigInteger oldValue = r.get();
BigInteger newValue;
do {
newValue = oldValue.add(BigInteger.ONE);
} while (!r.compareAndSet(oldValue, newValue));不过,这并不是最好的解决方案性能。
https://stackoverflow.com/questions/73619277
复制相似问题