Моя система состоит из класса «прокси», который получает пакеты «запроса», собирает их и отправляет их по сети на сервер, который демарширует их, обрабатывает и возвращает некоторый «ответный пакет».
Мой метод submit на стороне прокси должен блокироваться до получения ответа на запрос (пакеты имеют идентификаторы для целей идентификации и ссылок) или до истечения времени ожидания.
Если бы я создавал это в ранних версиях Java, я бы, вероятно, реализовал в моем прокси набор «идентификаторов ожидающих сообщений», где я отправлял сообщение и ожидал () соответствующего идентификатора (с таймаутом) , Когда ответ получен, поток обработки уведомляет () соответствующий идентификатор.
Есть ли лучший способ добиться этого с помощью существующего библиотечного класса, возможно, в java.util.concurrency?
Если я выбрал решение, описанное выше, как правильно бороться с потенциальным состоянием гонки, когда приходит ответ до вызова wait ()?