java - 如何编写一个循环来了解线程已完成并启动新线程?

标签 java multithreading

我想编写一个线程,它了解线程已完成并启动新线程。 我的意思是我写了这段代码:

 new Thread(new Runnable(){ 
            @Override public void run(){
    //code here
                } 
           }).start();

但我想在 for 循环中完成它。 我只想创建 5 个线程。但是当一个线程完成后我想创建一个新线程。

for(int i=0;i<300;i++)
{
 //I want to create 5 thread here and stop code  and then when a thread has finished I want //to create  new thread.
}

最佳答案

线程类有这些方法,可以用来做你想做的事情:

Thread.join()
Thread.isAlive()

但是,您可能确实想使用线程池,如下所示:

    ExecutorService executor = Executors.newFixedThreadPool(5);
    for(int i=0;i<N;i++) {
        executor.submit(new Runnable() {
            @Override
            public void run() {
            }
        });
    }

关于java - 如何编写一个循环来了解线程已完成并启动新线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17297032/

相关文章:

Java 8 ParallelStream 内部 Web 应用程序容器

java - 如何将 cloudhopper 演示作为 Java 应用程序运行?

java - Java 8 中的 Swing 带来了哪些新变化?

java - 图像生成期间 pdfbox 中的线程问题

java - 异步JAX-RS

java - 重绘在线程中不起作用

multithreading - 基于 Go 的 http 包构建的 Web 应用程序是否作为使用多个线程处理传入请求的单个进程工作?

java - 号码格式错误

java - 如何在 Java 中打印出数组的偶数索引?

java - 如何使用 Vertx SQL 接口(interface)合并数据库查询结果