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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top