Java中怎么实现多线程递归

这篇文章将为大家详细讲解有关Java中怎么实现多线程递归,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

  1. public<T> voidParallelRecursive(final Executorexec,
    List<Node<T>>nodes,Collection<T> results){  

  2. for(Node<T> n:nodes){  

  3. exec.execute(new Runnable(){  

  4. public void run(){  

  5. results.add(n.compute());  

  6. }  

  7. });  

  8. parallelRecursive(exec,n.getChildren(),results);  

  9. }  

  10. }  

  11. public<T>Collection<T>getParallelResults(List<Node<T>>nodes)  

  12. throws InterruptedException{  

  13. ExecutorService exec=Executors.newCachedThreadPool();  

  14. Queue<T> resultQueue=newConcurrentLinkedQueue<T>();  

  15. parallelRecursive(exec,nodes,resultQueue);  

  16. exec.shutdown();  

  17. exec.awaitTermination(Long.MAX_VALUE,TimeUnit.SECONDS);  

  18. return reslutQueue;  

关于Java中怎么实现多线程递归就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。