在java中顺序运行线程

时间:2012-09-21 18:58:29

标签: java multithreading

假设我有线程T1,T2和T3,我如何确保线程T2在T1之后运行而线程T3在T2之后运行?

5 个答案:

答案 0 :(得分:3)

您的问题的解决方案可能是“不要使用多个线程”。如果要确保在操作1之后执行操作2,并且在操作2之后执行操作3而没有交错,则解决方案是执行操作1,然后执行操作2,然后执行操作3.线程作为一种机制很有用对于并行性,并且通过尝试确保以特定顺序运行的操作,您明确禁止并行性。不要试图使用一种机制来完成与其设计的事物完全相反的

答案 1 :(得分:3)

你必须在T1死后开始T2。

t1.start();
t1.join();
t2.start();

实际上,如果你需要按顺序运行它们,你可能不需要/不应该将它们放在单独的线程中。只需将t1和t2代码顺序放在一个线程中即可。

答案 2 :(得分:0)

看看Thread#join()

  

等待此线程死亡。

答案 3 :(得分:0)

您可以使用

进行设计
  1. CountDownLatch
  2. 等待-notifyAll的
  3. Observer-observable pattern。

答案 4 :(得分:0)

在T1代码结束时启动T2。在T2代码结束时启动T3。

或者只是按照其他海报的建议在一个线程中按顺序运行这些函数,因为这个练习基本没有意义。