Java中共享内存中值的原子获取和增量功能
我有几个进程(在同一台计算机上),它们一起需要顺序访问共享内存中的数组元素。为此,我希望将当前索引作为int存储在共享内存中的数组中,并且每个进程都能够获得索引的当前值,并在单个原子操作中将其递增一个固定值。我如何在Java中做到这一点
注意:我只希望这个原子操作用Java编码。其余的代码恰好在MATLAB中
你可以在下面搜索框中键入要查询的问题!
我有几个进程(在同一台计算机上),它们一起需要顺序访问共享内存中的数组元素。为此,我希望将当前索引作为int存储在共享内存中的数组中,并且每个进程都能够获得索引的当前值,并在单个原子操作中将其递增一个固定值。我如何在Java中做到这一点
注意:我只希望这个原子操作用Java编码。其余的代码恰好在MATLAB中
# 1 楼答案
您可以使用文件系统:Getting exclusive system-wide lock in Java
或者,如果可以使用C,则可以在共享内存中创建POSIX互斥体:Linux Shared Memory Synchronization
# 2 楼答案
知道你想做什么是有必要的。然而,只是想尝试一下——您可能需要某种内存中的数据库
神谕把我带到这里:http://java.dzone.com/articles/using-shared-memory-java,但也有像h2(http://www.h2database.com/html/main.html)这样的东西,我以前用过,效果很好
让我们知道你想要完成什么,我们可能会提供更多帮助