Read / write la sincronizzazione
-
23-08-2019 - |
Domanda
Ho una struttura di dati cui operazioni possono essere classificati come operazioni di lettura (ad esempio ricerca) e le operazioni di scrittura (ad esempio inserimento, cancellazione). Queste operazioni devono essere sincronizzati in modo che:
- letta operazioni non possono eseguire mentre un'operazione di scrittura è in esecuzione (a meno sullo stesso filo), operazioni leggere comunque possono essere eseguiti simultaneamente rispetto ad altre operazioni di lettura.
- Le operazioni di scrittura non possono eseguire mentre leggere o scrivere le operazioni sono in esecuzione (a meno che sullo stesso thread).
Come può questo tipo di sincronizzazione essere attuata?
La piattaforma è vantaggioso api così oggetti di sincronizzazione del api e le funzioni interbloccate sono gli elementi di base.
Soluzione
implementazione consigliato di Microsoft di un blocco di lettura / scrittura è qui (dovrete scorrere un po ', per l'intestazione di "blocchi di lettura / scrittura"):
http://msdn.microsoft.com/en-us/library /ms810427.aspx
Per riferimento, per coloro che hanno la stessa domanda, ma che hanno il lusso di .NET:
http://msdn.microsoft.com/en -us / library / system.threading.readerwriterlock.aspx