如何在所有包含的线程完成之前停止子程序结束?

时间:2014-04-13 23:47:01

标签: java android multithreading android-fragments android-activity

基本上,我有几个线程各自完成任务。

虽然我已经多线程化了这个子程序中的任务,以加快整体程序速度。

我需要此子程序仅在其中的所有线程完成时关闭,因为在此子例程完成之后,下一个子例程需要在程序中运行生成的信息。

与现在发生的情况相反,它允许子程序在后台关闭并让包含的线程在自己的时间内运行。这迫使下一个子程序运行,仅对部分数据起作用。

我该怎么做?

代码:

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();

}

1 个答案:

答案 0 :(得分:1)

要解决您的直接问题,您可以使用类似How to wait for a set of threads to complete?

的内容

但这非常难看。内置的ExecutorService允许您以更清晰的方式启动后台线程。