Sto scrivendo una classe che gestirà la sincronizzazione dei thread.
Avrebbe un metodo begin che incrementerebbe un contatore e un metodo end che annullerebbe il decremento di un contatore. Avrà un altro metodo che bloccherà mentre il contatore non è zero, quindi eseguirà un'azione tenendo premuto il blocco.
È un po 'come l'opposto di un semaforo, perché è sbloccato a zero e può essere bloccato più volte, solo sbloccato di nuovo una volta che è stato sbloccato un numero uguale di volte.
Esiste un nome per questo modello?
È una classe basata sulla risposta accettata della mia domanda qui