基本上,我有几个线程各自完成任务。
虽然我已经多线程化了这个子程序中的任务,以加快整体程序速度。
我需要此子程序仅在其中的所有线程完成时关闭,因为在此子例程完成之后,下一个子例程需要在程序中运行生成的信息。
与现在发生的情况相反,它允许子程序在后台关闭并让包含的线程在自己的时间内运行。这迫使下一个子程序运行,仅对部分数据起作用。
我该怎么做?
代码:
public void MainSetupTasks() throws ClientProtocolException, IOException {
new Thread(new Runnable() {
@Override
public void run() {
// Tasks to be complete
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// Tasks to be complete
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// Tasks to be complete
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// Tasks to be complete
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// Tasks to be complete
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// Tasks to be complete
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// Tasks to be complete
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// Tasks to be complete
}
}).start();
}
答案 0 :(得分:1)
要解决您的直接问题,您可以使用类似How to wait for a set of threads to complete?
的内容但这非常难看。内置的ExecutorService允许您以更清晰的方式启动后台线程。