Nome per questo modello? [chiuso]

-2

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

    
posta George Duckett 03.08.2011 - 15:33
fonte

2 risposte

1

Sembra simile a un blocco di scrittura in lettura. Consenti a più lettori contemporaneamente, ma per scrivere devi essere l'unica cosa che tiene il lucchetto. Sostituisci "leggi" con il comportamento # 1 e "scrivi" con il comportamento # 2.

    
risposta data 03.08.2011 - 16:28
fonte
0

Direi che hai implementato una modifica della costellazione produttore-consumatore, in cui il consumatore esegue un metodo finché un negozio non è vuoto. Il tuo negozio è il contatore. Il tuo consumatore è MethodB e il tuo produttore è MethodA.

Si adatta non al 100 percento, perché non blocchi MethodB ma blocchi in BlockedMethod. Ma penso che questo sia un punto di vista appropriato.

    
risposta data 03.08.2011 - 16:39
fonte

Leggi altre domande sui tag