java - Java 中的线程和观察者模式

标签 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()?
主线程还是工作线程?谢谢你

最佳答案

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

您可以使用 Thread.currentThread().getName() 打印线程的名称来对此进行测试。在 this link 查看线程名称的 getter/setter .

关于java - Java 中的线程和观察者模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313855/

相关文章:

javascript - 使用 Javascript/jQuery 高效跟踪和更新 DOM 元素数组?

java - 当使用除 String 之外的其他内容时,使用 Spring MVC、Jackson 和 REST 406。想要复杂类型

java - 在 EditText 中输入内容进行操作

c++ - boost::thread 应该在无限循环中运行并等待没有互斥量的新输入

swift - 这是一种在 Swift 中观察全局变量的方法吗?

c++ - arb 的静态 ctor/dtor 观察器。 C++类

java - 在java中读取wav文件

java - 在for循环条件下重复调用getter

.net - VB 中 Thread.Sleep 的奇怪行为

iphone - PerformSelectorInBackground 是否为每次调用生成新线程?