运行线程java

时间:2012-07-21 22:30:00

标签: java

Thread thread = new Thread("New Thread") 
{
    public void run(){ 
       //instructions A,B and C
    }
};

thread.start();
//instructions D, E

我想知道为什么在终止指令A,B和C后D和E不会运行。 如何在A,B和C指令完成后运行D和E?

4 个答案:

答案 0 :(得分:4)

  

如何在指令A,B和C终止后运行D和E

嗯,不要在新线程中运行A,B和C?开始一个新线程的重点是,当新线程上的run()方法运行时,当前线程可以运行其他代码。

可以在D和E之前呼叫thread.join()但你为什么要这样做呢?

如果您只想按照A,B,C,D,E的顺序运行代码,那么只需在当前线程中完成所有操作。

答案 1 :(得分:1)

1。如果您希望在完成A,B和C后运行D和E,那么您必须使用        join()

2. 当在一个线程上调用join()时,然后等待该线程死掉(即完成其run()方法),然后执行该线程加入()。

3。最好使用CountDownLatch from java.util.concurrent包。

答案 2 :(得分:0)

线程并行运行(至少大致)。因此,当你的线程开始时,A,B和C指令与指令D和E并行运行。如果你不想这样做,那么首先不要使用另一个线程(至少是那个' s最简单的选择)。

答案 3 :(得分:0)

如果您希望它们之后运行,请不要使用线程执行A,B和C.

如果您想要特定订单,为什么使用线程?