3
我需要通過這樣一個線程來計算一個數組:爪哇 - 如何確保一個Callable線程返回數組的知名度
public class Calculator implements Callable<int[]> {
@Override
public int[] call() {
int[] result = new int[100];
for (int i = 0; i < result.length; i++) {
result[i]++;
}
return result;
}
}
和一個主線程可以是這樣的:
ExecutorService executor = Executors.newFixedThreadPool(1);
Future<int[]> future = executor.submit(new Calculator());
int[] result = future.get();
我不知道如何確保result
中所有元素的可見性。根據Memory Consistency Properties部分,在關係之前似乎沒有這種情況發生。
走動的一種方法是將數組包裝成AtomicIntegerArray
。但是我想知道是否有其他解決方案可以推廣到任何一種原始數組。
由於
它也在OP鏈接的頁面上(包描述)。 – erickson