在我的应用程序中通过Paho MQTT发送消息,我必须等待响应才能发送新消息。
e.g:
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是两个不同的主题,以防重要
答案 0 :(得分:0)
鉴于您提供的信息有限,有几种方法可以解决这个问题。
如果你有在myMqttConnection.run()
代码中产生一个线程,你需要一种方法让你的线程互相等待。
如果您对旧的skool代码感到满意,则可以使用共享保护对象和等待/通知机制。更现代的方法是使用像CyclicBarrier这样的东西。
否则,如果你在myMqttConnection.run()
中产生一个线程,但是等待它完成,你必须质疑为什么要产生一个线程..?为什么不将run()
重命名为read()
并从read()
消息中返回消息。