sto scrivendo un programma in cui v'è un oggetto condiviso da più thread:Devo bloccare l'oggetto durante la lettura?
- A) Più thread di scrittura scrivono all'oggetto (tutto esegue la stessa funzione )
- B) Un filo di lettura che accede l'oggetto ogni 5 secondi
- C) un filo che accede all'oggetto c'è una richiesta dell'utente leggere
ovviamente è necessario bloccare l'oggetto durante la scrittura, come non vogliamo più thread a w rito all'oggetto allo stesso tempo.
Le mie domande sono:
- E 'anche necessario bloccare l'oggetto durante la lettura da esso?
- Ho ragione di pensare che se si blocca l'oggetto solo quando si scrive, una sezione critica è sufficiente; ma se blocciamo l'oggetto durante la lettura o la scrittura, è necessario un mutex?
Sto ponendo questa domanda perché in Microsoft Office non è possibile che due istanze di Word accedano a un documento in modalità di accesso in lettura/scrittura; ma mentre il documento viene aperto in modalità lettura/scrittura, è possibile aprire un'altra istanza di Word per accedere al documento in modalità di sola lettura. La stessa logica si applicherebbe al threading?
È utile osservare come i database relazionali fanno ciò, sono i padroni dell'accesso ai dati condivisi. – skaffman