У меня есть модель производитель-потребитель на Java с несколькими потребителями. Я передаю объект между производителями и потребителями, у которого есть переменная, назовем ее «имя».
Теперь это имя может быть A, B или C. Если значение равно A, один потребитель снимет его из очереди и что-то с ним сделает. Если значение равно B, другой потребитель извлечет его из той же очереди и сделает что-нибудь еще. Если значение равно C, то же самое делает третий потребитель.
У меня вопрос, как это реализовать. Моя текущая теория следующая (в псевдокоде):
// This is code for each consumer
pull item off the queue
check if item.name is right for this consumer (A, B, or C)
if so, send it to consume()
else, put it back on the queue
Будет ли что-то подобное работать, или это нанесет ущерб моей синхронизации потоков? Если это не сработает, какую модель мне следует использовать для этого?
getName()
, чтобы вы могли различать их. Другой подход: вы используетеinstanceof
для сравнения экземпляра среды выполнения каждого подкласса Consumer. - person gerrytan   schedule 25.02.2013