如何在Java / Android中启动另一个线程之前等待线程完成?

ZimZim:

假设我有这个非常简单的代码:

for(int i = 0; i < 10; i++) { 
    thread = new Thread(this); 
    thread.start(); 
} 

但是,在这段代码中,该线程显然一次启动了10次,并且它不会等待前一个线程完成。在重新启动线程之前,如何检查线程是否完成?

aioobe:

在回答您的问题之前,我强烈建议您先进行研究ExecutorServices,例如ThreadPoolExecutor

现在回答您的问题:

如果要等待上一个线程完成,请在开始下一个线程之前thread.join()在以下之间添加

for(int i = 0; i < 10; i++) { 
    thread = new Thread(this); 
    thread.start(); 

    thread.join();    // Wait for it to finish.
}

如果要启动10个线程,请让他们完成工作,然后继续,然后join在循环后继续

Thread[] threads = new Thread[10];
for(int i = 0; i < threads.length; i++) { 
    threads[i] = new Thread(this); 
    threads[i].start(); 
}

// Wait for all of the threads to finish.
for (Thread thread : threads)
    thread.join();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

c#如何在启动另一个线程之前检查线程是否完成

如何让当前线程在继续之前等待另一个线程完成?

如何使用线程使操作在继续之前等待另一个操作完成?

如何在启动新线程之前等待线程执行完成?

您如何等待另一个线程提交的回调完成?

如何在 React 中启动另一个 API 调用之前等待一个 API 调用完成?

如何在启动另一个迁移脚本之前等待自动迁移启动脚本完成?

如何等待直到Java中的另一个线程释放了锁?

如何让一个线程等待另一个线程?

如何使Java线程等待另一个线程的输出?

如何通知一个线程,另一个线程已完成执行?

Ubuntu无法启动另一个Java线程

如何在执行另一个之前等待ajax成功处理程序完成

Java Swing如何在另一个线程中打开框架

在C ++中,如何让一个pthread继续而另一个线程正在等待信号量?

如何使一个函数在运行之前等待另一个函数的完成

如何在Java中将对象从主线程传递到另一个线程

在c中,如何使一个线程等待其他线程完成

如何等待一个长进程的结束(在另一个线程上)?

如何从另一个线程android访问对象

如何告诉另一个线程一个线程在recv()调用中* now *

如何使一个线程按预期顺序多次等待另一个线程

如何在一个线程中修改变量并在另一个线程中检查变量?

如何在主线程中调用一个方法并终止另一个线程?

当任务在android中的另一个线程中运行时,如何更新UI?

Java:当被另一个线程中断时,如何在一个线程上捕获InterruptedException?

使用两个线程和 system() 命令运行 shell 脚本:如何确保一个 shell 脚本在另一个之前启动

仅等待另一个线程的一部分-Java

如何从另一个线程(Android处理程序)在imageview中显示位图