Java中的线程和观察者模式

时间:2012-04-25 10:31:04

标签: java multithreading observer-pattern

假设我有两个类,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);
    }
}

我的问题是: 假设worker在另一个线程中运行,该线程将运行函数 notifyMe()
主线程还是工作线程?谢谢

2 个答案:

答案 0 :(得分:2)

函数调用在调用它的线程的控制下执行。在您的情况下,因为您从工作线程调用notifyMe(),工作线程将负责执行方法 notifyMe()

您可以使用Thread.currentThread().getName()对此进行测试,以打印线程的名称。请参阅this link处的线程名称的getter / setter。

答案 1 :(得分:1)

运行worker的同一个线程。