我有一個是這樣的:並行使用Java 7的結果,使用非最終變量
int [] array1 = new int[20];
int [] array2 = new int[20];
int total= 0;
Random generator = new Random();
for(int i = 0; i < 10000; i++){
int tmp = generator.nextInt(20);
boolean win = custom_function(...);
array1[tmp]++;
array2[tmp]++
total++;
}
// do something with the arrays
而且我不知道如何實現它並行!當使用結構,如
ExecutorService exec =
Executors.newFixedThreadPool(SOME_NUM_OF_THREADS);
try {
for (final Object o : list) {
exec.submit(new Runnable() {
@Override
public void run() {
// do stuff with o.
}
});
}
} finally {
exec.shutdown();
}
我簡單的不能回什麼或改變什麼,因爲它只有最後變量的作品!如何進行?
每個可運行應該修改變量array1[tmp]
,array2[tmp]
和array3[tmp]
。請注意,這可以通過某種分叉連接完成,我只是不知道該怎麼做。
你怎麼想它並行? (如果每個Runnable能夠返回結果,應該做些什麼?) – Radiodef
每個可運行的應該修改變量array1 [tmp],array2 [tmp]和array3 [tmp]。請注意,這可以通過某種分叉連接來完成,我只是不知道該怎麼做... –