Лучший способ синхронизировать асинхронную задачу
Моя проблема: у меня есть беспроводная сеть 802.15.4, подключенная к последовательному порту (с помощью оболочки). Я могу отправлять пакеты в сеть и прослушивать входящие пакеты. Как вы можете себе представить, это очень асинхронно.
Здесь возникает задача: я хочу отправлять команды в сеть и ждать ответа в одном вызове функции. Например: я хочу получить температуру от узла с идентификатором сети 1338.
double getTemperature(int id) throws Exception { .... }
Есть ли лучший способ ожидания ответного сообщения, кроме выполнения всей этой вещи "synchonized (object) wait (..) notify (..)"?
С наилучшими пожеланиями, bigbohne
Может быть, добавить немного специй:
Все это должно заканчиваться веб-интерфейсом, где пользователь может запросить эти команды (через ajax или напрямую). Я также думал о кэшировании значений ответов в базе данных. Но для некоторых команд у вас MUSS есть прямой ответ на успех / неудачу