gpt4 book ai didi

java - 使用处理程序的线程交互

转载 作者:行者123 更新时间:2023-11-29 21:52:24 26 4
gpt4 key购买 nike

我有两个工作线程:

  • 数据库线程
  • 网络线程

它们将是单例,以便应用程序的每个部分都可以使用它们。

public class DbThread extends Thread {

public Handler handler;

@Override
public void run() {
Looper.prepare();

handler = new Handler();

Looper.loop();
}
}

它们通过处理程序进行通信。我关心的是同步。另一个线程可以在创建时尝试访问处理程序以发送消息。如何正确同步处理程序访问?

我的想法是,想要访问另一个线程的处理程序的线程应该在创建处理程序之前等待。但我不知道如何实现这一点。

最佳答案

我在实现 this 方面取得了一些成功解决方案。

您将把循环器隐藏在 HandlerThread 中,您可以等到线程准备好接收消息。

之所以有效,是因为 waitUntilReady 中的 getLooper 调用将阻塞,直到循环器被初始化。这样做不仅可以确保处理程序已创建,而且您的线程已准备好接收消息。

关于java - 使用处理程序的线程交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14085718/

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