Лучший способ синхронизировать асинхронную задачу

Моя проблема: у меня есть беспроводная сеть 802.15.4, подключенная к последовательному порту (с помощью оболочки). Я могу отправлять пакеты в сеть и прослушивать входящие пакеты. Как вы можете себе представить, это очень асинхронно.

Здесь возникает задача: я хочу отправлять команды в сеть и ждать ответа в одном вызове функции. Например: я хочу получить температуру от узла с идентификатором сети 1338.

double getTemperature(int id) throws Exception { .... }

Есть ли лучший способ ожидания ответного сообщения, кроме выполнения всей этой вещи "synchonized (object) wait (..) notify (..)"?

С наилучшими пожеланиями, bigbohne

Может быть, добавить немного специй:

Все это должно заканчиваться веб-интерфейсом, где пользователь может запросить эти команды (через ajax или напрямую). Я также думал о кэшировании значений ответов в базе данных. Но для некоторых команд у вас MUSS есть прямой ответ на успех / неудачу

Ответы на вопрос(3)

Ваш ответ на вопрос