Differenza tra i metodi BeginWrite e BeginRead di TSimpleRWSync?

0

Recentemente sono passato a TSimpleRWSync da TRTLCriticalSection. I metodi BeginRead e BeginWrite mi confondono come ovunque io legga aiuto, apparentemente fanno la stessa cosa, cioè acquisisco la sezione critica ogni volta che viene abbandonata. Poiché TSimpleRWSync non consente più thread di lettura, sembra che non vi sia alcun motivo nell'avere due metodi separati.

C'è una differenza speciale tra loro oltre a quella contestuale?

    
posta Umair Ahmed 01.03.2014 - 09:31
fonte

1 risposta

0

I metodi BeginRead / BeginWrite provengono dall'interfaccia IReadWriteSync . TSimpleRWSync è una semplice implementazione di tale interfaccia, che consente l'accesso solo a un singolo lettore o scrittore. Ma c'è anche un'altra implementazione dell'interfaccia ( TMultiReadExclusiveWriteSynchronizer ) che consente più lettori concorrenti.

Entrambe le implementazioni sono conformi alla stessa interfaccia, puoi facilmente sostituire l'utilizzo di TSimpleRWSync con TMultiReadExclusiveWriteSynchronizer senza dover toccare tutte le posizioni in cui blocchi / sblocchi le sezioni critiche. L'unica cosa che devi fare in anticipo è dimenticare che TSimpleRWSync consente solo un singolo lettore / scrittore e scrivi il tuo blocco come se ci fossero più lettori.

    
risposta data 01.03.2014 - 10:40
fonte

Leggi altre domande sui tag