假设你有以下方法 MyClasspublic class MyClas{ public void startWork(){ YourClass.doSomeWork(); //more things to do in this method }}和 YourClass 看起来像这样:public class YourClass{ public static void doSomeWork(){ // a lot of work to do here // maybe even invoke other methods in some other classes }}现在我想知道的是,当代码YourClass.doSomeWork();在startWork()方法中执行时,脚本会继续到同一方法中的下一行还是等到doSomeWork()inYourClass完成它的执行?请注意,doSomeWork()这不会返回任何内容。
2 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
大多数语言(尤其是 Java)中的默认语义当然是代码按顺序执行。
意思是:除非你做了额外的事情,比如提交一个任务到一个ExecutorService(或者创建一个Thread对象并调用它的start()
方法),那么当然外层方法会依次执行所有调用,并且每次内部调用都需要在下一个被执行。
换句话说:除非您在源代码中使用特定的构造,否则事情将由单个线程按照您放入代码的确切顺序执行。是的,事情可能会变得更加复杂,因为指令可以在各个级别重新排序,但是 Java 内存模型的这些方面与此处提出的基本问题无关)。
添加回答
举报
0/150
提交
取消