gpt4 book ai didi

java - java中如何实现异步线程间通信?

转载 作者:行者123 更新时间:2023-12-02 05:21:12 24 4
gpt4 key购买 nike

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

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

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

我的实现就像java中的SwingWorker线程

最佳答案

您无法“在主线程中调用方法”。您唯一能做的就是实现一种特定的机制,让主线程自行在子线程提供的对象上执行方法。

上面粗略地描述了 Swing 机制的作用:“主”线程(在这种情况下为事件调度线程)将对象从全局队列中出列,如果对象的类型合适,则调用 run<Runnable 关联实例上的/code> 方法。

要点:在 Swing 中,EDT 不会“继续做它正在做的事情”;而是“继续做它正在做的事情”;它专门等待其他线程告诉它通过此机制做什么,否则就阻塞,什么也不做。

关于java - java中如何实现异步线程间通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26507904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com