编程语言
首页 > 编程语言> > 使用Java的Atomic类进行模块化增量

使用Java的Atomic类进行模块化增量

作者:互联网

我很惊讶Java的AtomicInteger和AtomicLong类没有模块化增量的方法(因此在达到限制后值会回绕到零).

我认为我必须遗漏一些明显的东西.最好的方法是什么?

例如,我想在线程之间共享一个简单的int,我希望每个线程能够增加它,比如mod 10.

我可以创建一个使用同步/锁的类,但有更好,更简单的方法吗?

解决方法:

在addModular()方法中添加synchronized修饰符或块有什么困难?

Atomic类没有这个功能的原因是它们基于当前CPU提供的specific atomic hardware instructions,并且模块化算法不能由那些不采用锁定或其他更复杂且可能效率低的算法实现,如马特.

标签:java,atomicity,modulo
来源: https://codeday.me/bug/20191008/1872477.html