在我的应用程序中,我通过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/