假設你有以下方法 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 }}現(xiàn)在我想知道的是,當代碼YourClass.doSomeWork();在startWork()方法中執(zhí)行時,腳本會繼續(xù)到同一方法中的下一行還是等到doSomeWork()inYourClass完成它的執(zhí)行?請注意,doSomeWork()這不會返回任何內(nèi)容。
2 回答

桃花長相依
TA貢獻1860條經(jīng)驗 獲得超8個贊
大多數(shù)語言(尤其是 Java)中的默認語義當然是代碼按順序執(zhí)行。
意思是:除非你做了額外的事情,比如提交一個任務到一個ExecutorService(或者創(chuàng)建一個Thread對象并調用它的start()
方法),那么當然外層方法會依次執(zhí)行所有調用,并且每次內(nèi)部調用都需要在下一個被執(zhí)行。
換句話說:除非您在源代碼中使用特定的構造,否則事情將由單個線程按照您放入代碼的確切順序執(zhí)行。是的,事情可能會變得更加復雜,因為指令可以在各個級別重新排序,但是 Java 內(nèi)存模型的這些方面與此處提出的基本問題無關)。
添加回答
舉報
0/150
提交
取消