我正在开发一个代码,其中我有一个父线程和一个子线程。现在,我的场景如下所述,
我还想澄清一下,我知道java中的并发包,但它是同步进行的,即主线程必须等待子线程直到它完成执行,但我希望主线程在子线程时做连续工作执行。
我的实现类似于SwingWorker
java中的线程
答案 0 :(得分:2)
你没有“在主线程中调用方法”。你唯一能做的就是实现一个特定的机制,主线程由主动,在子线程提供的对象上执行一个方法。
上面粗略地描述了Swing的机制所做的事情:“主”线程(在这种情况下,事件调度线程)从全局队列中取消对象,如果对象的类型合适,则调用run
Runnable
的关联实例上的方法。
要点:在Swing中,EDT不会“继续正常工作”;它专门等待其他线程告诉它通过这种机制做什么,否则只是阻塞,什么都不做。