ah ok...

il problema è che se lo uso sulla lista mi ritrovo una coda incoerente perchè nell'arco di tempo dopo che faccio il controllo lo devo sbloccare e la velocità dei thread non è calcolabile, se blocco tutto il blocco allora blocco anche l'esecuzione dei thread per il tanto che faccio il controllo e quindi rimando anche la liberazione delle porte. a quel punto meglio una coda coerente che inizia e finisce il suo lavoro e accodare un po qui e un po la a priori.

senza sincronizzare il problema e che non sempre la seriale risponde subito, e quindi mi ritrovo comunque ad avere tutti i thread bloccati e una accesso alla porta che si puo' anche accavallare con la richiesta successiva o precedente mandando in frantumi la logica della classe incapsulata.

invece sincronizzando ottengo che comunque tutto il codice della "capsula" viene eseguito dall'inizio alla fine, anche se non nell'ordine di arrivo, ma questo non ha importanza perchè tutta la logica viene seguita dentro la "capsula" e le risposte sono ad eventi, quindi otterrò la mia logica quando ha terminato e non mentre viene eseguita.

non so se sono stato chiaro... sono un casino con le spiegazioni io :rollo: