如何确保在Java方法中顺序完成2个语句的执行

时间:2016-06-13 14:21:56

标签: java concurrency race-condition

我在Java 8中有一个2语句方法。第一个语句需要相对较长的时间来执行,而且重要的是,不能返回一个值。第二个声明很快。如何执行并完成第一个语句并确保第二个语句在第一个语句完成之前不会执行?我们非常感谢代码片段。

public static Object returnMyClassFieldValue() {
  setMyClassField(); // long running; can't return a value
  return MyClass.valueOfMyField; // very quick

}

1 个答案:

答案 0 :(得分:1)

此代码按顺序执行,因此第一个语句首先执行,语句结束后执行下一个语句。

方法调用

setMyClassField()

在方法完成后返回。因此,运行代码顺序不需要额外的代码。

如果要在单独的线程中运行该方法,可以使用Threads并使用方法

join()

等待执行或使用线程池。

主题:https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html

线程池:https://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html

结论: 在第一个语句之后运行第二个语句无关。

如果那回答你的问题。