Давайте рассмотрим следующую ситуацию в шаблоне производитель-потребитель:
Я не могу дождаться выполнения задачи. Я хочу создать задачу по требованию (например, с Supplier
), когда потребитель готов ее обработать. В SynchronousQueue
мне нужно иметь актуальную задачу при выполнении метода put()
. Как решить мою проблему?
Я знаю, что могу решить ее по замыслу - просто сделайте набор рабочих и скажите им, чтобы они производили задачу-потреблять-задачу-повторять, но я ищу другой путь.
Чтобы быть более точным c: Давайте рассмотрим, что у меня есть удаленный http-ресурс A. Я могу получить от него «задачу» для обработки в моих рабочих потоках. Результаты отправляются асинхронно. Но дело в том, что мне не следует получать задание от А, если я не могу выполнить его прямо сейчас.