Java多線程遞歸在我們使用的時候需要我們不斷的進行學習其實每個語言都可以在源代碼中找到問題的解決方案當每個迭代彼此獨立並且完成Java多線程遞歸中每個迭代的工作意義都足夠重大足以彌補管理一個新任務的開銷時這個順序循環是適合並行化的
public<T> voidParallelRecursive(final Executorexec
List<Node<T>>nodesCollection<T> results){
for(Node<T> n:nodes){
execexecute(new Runnable(){
public void run(){
resultsadd(pute());
}
});
parallelRecursive(execngetChildren()results);
}
}
public<T>Collection<T>getParallelResults(List<Node<T>>nodes)
throws InterruptedException{
ExecutorService exec=ExecutorsnewCachedThreadPool();
Queue<T> resultQueue=newConcurrentLinkedQueue<T>();
parallelRecursive(execnodesresultQueue);
execshutdown();
execawaitTermination(LongMAX_VALUETimeUnitSECONDS);
return reslutQueue;
}
但是Java多線程遞歸程序不能處理不存在任何方案的情況而下列程序可以解決這個問題
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27613.html