avrei pensato anche una soluzione del tipo :

attribuisco un valore alla "capsula" che determina la "lunghezza" dell'operazione (attribuita gia dentro la classe in progettazione) e faccio un conteggio dei thread accodati nella porta, una cosa tipo per ogni thread moltiplico il valore della "capsula" e aggiungo ad un contatore x porta, durante la fase di avvio della capsula determino il valore minore della coda e lo inserisco in quella, ovviamente quando la cpsula ha terminato decremento, tutto senza lock, tanto potrei farlo anche "indicativo"...
pero' avrei preferito qualcosa che mi calcolasse con piu' precisione


in ogni caso non ho ancora ringraziato MItaly per l'interessamento, e per eventuali ulteriori suggerimenti, lo faccio ora: grazie MItaly.

e comunque grazie a tutti quelli che si vorranno interessare al caso