好吧,所以我試圖找到二維數組的最大元素。我將有一個方法接受2darray作爲參數並找到最大值。它需要找到每行的最大元素作爲一個單獨的線程,以便線程平行運行,然後連接每個線程,並找到最大值以獲得整個二維數組的最大值。現在我遇到的問題是run()不會返回任何值...那麼我該如何訪問已修改的值?例如Java中的並行線程
public static int maxof2darray(long[][] input){
ArrayList<Thread> threads = new ArrayList<Thread>();
long[]rowArray;
for(int i=0; i<input.length; i++){
rowArray = input[i];
teste r1 = new teste(rowArray,max);
threads.add(new Thread(r1));
}
for (Thread x : threads)
{
x.start();
}
try {
for (Thread x : threads)
{
x.join();
}
}
如你所見,它創建了一個線程對象的數組列表。然後獲取每一行並調用run()函數,以查找該行的最大值...問題是run()不會返回任何值...那麼我怎樣才能訪問該行的最大值?
也許你想看看期貨或其他更高級別的抽象? – 2010-12-10 09:00:41
不幸的是,雖然我很感謝使用其他API的建議,但我必須使用線程來執行此操作,並且thread.join()=/ – Jake 2010-12-10 17:57:25