java - 如何在MQTT消息到达之前保持线程

标签 java multithreading mqtt paho

在我的应用程序中,我通过Paho MQTT发送了一条消息,在发送新消息之前,我必须等待响应。

例如。:

while (!exit){
  sendMessage(); //sends message via Paho MQTT 
  myMqttConnection.run() //starts a thread to wait for Response via Paho MQTT
  //what to do to hold this thread till a message has arrived?
}

sendMessage()和myMqttConnection是2个不同的主题,以防万一

最佳答案

鉴于您提供的信息有限,有几种方法可以解决此问题。

如果必须在myMqttConnection.run()代码中生成线程,则需要一种让线程彼此等待的方法。

如果您对旧式代码感到满意,则可以使用共享的保护对象和等待/通知机制。更现代的方法是使用CyclicBarrier之类的东西。

否则,如果您在myMqttConnection.run()中生成线程,但随后等待其完成,则必须询问为什么要生成线程..?为什么不将run()重命名为read()并从read()消息中返回消息呢?

关于java - 如何在MQTT消息到达之前保持线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38037196/

相关文章:

java - 当类只包含 JUnit4 注释时,使 Eclipse 默认为 JUnit4 而不是 JUnit5

java - roguelike 游戏的纯 Java 文本界面

java - 如何获取 Facebook 中特定页面的所有帖子 ID

java - Flying Saucer 库是否支持 Google App-Engine?

java - 如何从 Android 中的 firebase 返回值?

c# - 优雅地关闭多线程应用程序?

c - 多个线程调用同一个 rand() 函数,如何让它们调用自己的 rand() 函数实例?

javascript - 如何使用 nodejs 从 Windows 证书存储中读取私钥缓冲区?

android - 我在哪里可以找到随时可用的 Elcipse Paho Android 服务/客户端 JAR 文件?

sockets - 连接大约一分钟后出现 MQTT 套接字错误