1

Main クラスと Worker クラスの 2 つのクラスがあるとします。

class Main implements StateChangeListener extends JFrmame{

   public void notifyMe(State state){
        //Change the GUI according to the state
   }  
}


class Worker extends Thread{
    public StateChangeListener listener;
    public void run(){
        listener.notifyMe(state);
    }
}

私の質問は次のとおりです。ワーカーが別のスレッドで実行されているとします。どのスレッドが関数notifyMe()を実行しますか?
メインスレッドまたはワーカースレッド? ありがとうございました

4

2 に答える 2

2

関数呼び出しは、それを呼び出したスレッドの制御下で実行されます。あなたの場合、ワーカー スレッドから notifyMe() を呼び出しているため、ワーカー スレッドはメソッドnotifyMe()の実行を担当します。

これをテストしてThread.currentThread().getName()、スレッドの名前を出力できます。このリンクでスレッド名のゲッター/セッターを参照してください。

于 2012-04-25T10:43:58.087 に答える
1

ワーカーを実行している同じスレッド。

于 2012-04-25T10:32:17.817 に答える