0

我正在开发一个代码,其中我有一个父线程和一个子线程。现在,我的场景如下所述,

  • 父线程启动子线程
  • 启动子线程后,它会继续工作。
  • 现在有一次发生子线程要调用主线程中的方法
  • 然后它使用该方法异步调用主线程。

我还想澄清一下,我知道 java 中的并发包,但它是同步执行的,即主线程必须等待子线程完成执行,但我希望主线程在子线程执行时继续工作。

我的实现就像SwingWorkerjava中的线程

4

1 回答 1

2

您不会“在主线程中调用方法”。你唯一能做的就是实现一个特定的机制,主线程通过它自己的主动性,在一个由子线程提供的对象上执行一个方法。

run上面大致描述了 Swing 的机制所做的事情:“主”线程(在这种情况下,是 Event Dispatch 线程)从全局队列中取出对象,如果对象的类型合适,则调用Runnable.

要点:在 Swing 中,EDT 不会“继续工作”;它专门等待其他线程通过这种机制告诉它要做什么,否则只是阻塞,什么也不做。

于 2014-10-22T12:58:20.230 回答