gpt4 book ai didi

java - java线程结束后继续运行

转载 作者:行者123 更新时间:2023-11-30 04:27:20 25 4
gpt4 key购买 nike

我有一个作为线程运行的类,我想在它完成执行后再次运行,并且可能保持同一类的两到三个线程同时运行(即,如果一个线程完成正在执行,但有两个正在运行,只有一个再次运行,依此类推)。

我尝试过的代码是这样的:

ExecutorService pool = Executors.newFixedThreadPool( 3 );
while( true )
pool.submit( new MyThread() );

关于如何实现这一目标有任何反馈吗?

更新:MyThread 类实际上是 MyRunnable!

非常感谢,弗拉德

最佳答案

使用ExecutorCompletionService :

ExecutorService executor = Executors.newFixedThreadPool(3);
CompletionService<Void> compService = new ExecutorCompletionService<Void>(executor);

for(int i = 0; i < 3; i++) compService.submit(new Task(), null);

while(true)
{
compService.take(); // wait until one of the threads finishes its task
compService.submit(new Task(), null);
}

关于java - java线程结束后继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15525597/

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