慢Java程序

时间:2012-07-17 14:13:12

标签: java methods execute

我遇到了问题,让我说我有这样的代码:

public static void main(String[] args)
{
startMethod1();
startMethod2();
}

现在,如果startMethod1方法非常大并且需要花费大量时间来执行它,则在startMethod1完成之前启动startMethod2。 如何让这些方法逐个执行?

4 个答案:

答案 0 :(得分:10)

  

startMethod2在startMethod1完成之前启动。

这绝不会发生。您可以在startMethod1中启动可能仍在startmethod2启动时运行的线程。除非startMethod2调用startMethod1

,否则startMethod1无法在startMethod2之前启动

如果你想等到startmethod1中的线程结束,你必须Thread.join()他们或使用ExecutorService.awaitTermination()

  

如何让这些方法逐一执行?

就像你编写代码一样。

答案 1 :(得分:3)

他们已经做到了。您编写它的方式startMethod2将在startMethod1运行后才会开始。

答案 2 :(得分:1)

如果您正在使用线程,那么请更改您的代码示例...但我假装您这样做了,因为您对另一个问题的评论显示您的意图; - )

您可以查看wait()和notify()

调用wait()告诉当前Thread挂起,并通知()再将其唤醒

答案 3 :(得分:0)

我的猜测是你正在使用某种缓冲的消息记录API,因此某些输出的出现时间比你预期的要晚得多。甚至可能在程序结束前都没有冲洗。因此,您将获得交错输出,这会误导您。