1

假设我有两个类,Main 类和 Worker 类

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()打印线程的名称来测试它。在此链接中查看线程名称的 getter/setter 。

于 2012-04-25T10:43:58.087 回答
1

运行工作者的同一线程。

于 2012-04-25T10:32:17.817 回答