数组元素是否在工作人员之间正确发布?
假设我有一个大数组(任何原子数据类型,所以不是long
or double
),
- 我创建了一个工人来填充我传递给它的构造函数的数组,
- 我将工人提交给执行者,并等到它完成(例如with
future.get()
)。工人不返回任何东西。它只是填满了我的数组。 - 然后,我立即在其构造函数中创建并提交另一个具有相同数组的工作人员。它是否看到最新的值?
换句话说,它保证了前一个工作人员的最后一次写入发生在下一个工作人员的第一次读取之前?
我是否应该(或出于最佳实践或其他目的)让第一个工作人员返回数组,即使引用与我已经拥有的引用相同?
[编辑] 一些背景:我使用byte
数组或short
数组,它们代表图像并且每个使用多达 500,000,000 个元素。我对每个元素执行简单的算术运算。