あなたはその中に別のメソッドを呼び出すときにメソッド待ちの実行フローはいますか?

sticky_elbows:

あなたが次のメソッドを持っていると言います MyClass

public 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()YourClass仕上げ、その実行?

注意doSomeWork()何も返しません。

GhostCat敬礼モニカC.:

デフォルトのほとんどの言語で、特にJavaでのセマンティクスコードが順次実行されることを当然です。

意味:あなたがない限り、追加などExecutorServiceのにタスクを提出(またはThreadオブジェクトを作成し、その呼び出しなどの事、start()方法)、そしてもちろん、外の方法は、前に最後まで順番にすべての呼び出し、および各内部コールのニーズを実行します次は実行されます。

言い換えれば、あなたは、ソースコード内の特定の構文を使用しない限り、物事はあなたのコードに入れていることを正確な順序で、単一のスレッドで実行されます。そして、はい、命令はさまざまなレベルで再注文することができるよう物事をより複雑得ることができますが、Javaのメモリモデルのこれらの側面は、基本的な質問には関係ありません)ここに尋ねました。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=182929&siteId=1