Purtroppo non è molto chiaro (a me) tutto il contesto della tua applicazione. Puoi chiarire o descrivere meglio? (o mostrare più codice)
È coinvolto anche il multi-threading? Cioè queste "code" sono accedute da thread diversi? (es. 1~N thread inseriscono nella coda e 1~M thread estraggono dalla coda)
Perché se sì, cioè se c'è il multi-threading nella gestione delle code, il solo pattern "Observer" generalmente non è la soluzione, perlomeno non senza fare altre valutazioni. In genere si usano code "bloccanti". Ma ovviamente dipende dallo scenario ...![]()