gpt4 book ai didi

java - 在递归创建线程时跟踪线程

转载 作者:行者123 更新时间:2023-11-30 09:55:33 24 4
gpt4 key购买 nike

我目前正在为一门类(class)编写一些代码。我不能发布代码,但我可以谈论一些我正在努力解决的高级概念并接收有关它们的意见。基本上代码是无向图上的递归 DFS,我应该将其转换为并发程序。我的教授已经指定我应该在递归 DFS 方法中创建我的线程,然后在另一个方法中加入它们。基本上,我无法思考我应该如何跟踪我正在创建的线程,以便我可以用另一种方法加入所有线程。我正在考虑一个线程数组,但我不确定如何将每个新线程添加到数组中,或者即使这是正确的方向。

最佳答案

实现此目的的另一种方法是使用 BlockingQueueThreadPoolExecutor。您可以不断向 BlockingQueue 添加新线程,记录添加的线程数,然后在完成后关闭 ThreadPoolExecutor

private ThreadPoolExecutor pool;
private BlockingQueue<Runnable> queue;
...
this.pool = new ThreadPoolExecutor(10, 10, new Long(1000),
TimeUnit.MILLISECONDS, this.queue);
...

//new thread created and added to the queue
requestedTasks++

if (requestedTasks == this.pool.getCompletedTaskCount() && this.queue.isEmpty()) {
this.pool.shutdown();
}

关于java - 在递归创建线程时跟踪线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2769646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com