0

我是线程世界的新手,仍在学习,因为我正在学习线程的概念并加入其他线程等待较早线程完成并从那里加入的地方,请你告诉我,我想要启动三个线程 T1,T2,T3 ,其中 t2 将在 T1 完成后启动。

4

3 回答 3

2

据我了解,您希望等到线程 1 完全完成然后启动线程 2,而线程 3 可以在任何地方运行。我认为可以满足您的问题的简单代码:

Thread thread1 = new Thread1();
Thread thread2 = new Thread2();
Thread thread3 = new Thread3();
thread3.start();
thread1.start();
try {
  thread1.join();
  thread2.start();
} catch (InterruptedException e) {
  //if you do not use thread1.interrupt() this will not happen.
}
于 2013-02-18T17:10:24.650 回答
0

做这样的事情:

        Thread T1 = new Thread(new ThreadExm);  // where ThreadExm implements Runnable
        Thread T2 = new Thread(new ThreadExm);

        try {
            // Start the thread1 and waits for this thread to die before
            // starting the thread2 thread.
            T1.start();
            T2.join();

            // Start thread2 when T1 gets completed
            thread2.start();
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
于 2013-02-18T17:11:46.707 回答
0

在多个线程完成后,您可以使用 Barriers 启动一些操作(可能是另一个线程)。

检查:http ://programmingexamples.wikidot.com/java-barrier了解更多信息。

但是只等待一个线程真的没有多大意义......

于 2013-02-18T17:06:53.893 回答