Sobes.tech
Middle+

Ce puteți spune despre problema Reader-Writer?

sobes.tech AI

Răspuns de la AI

Problema cititor-scriitor apare atunci când mai multe fire de execuție accesează simultan o resursă comună, unde unii doar citesc datele (cititorii), iar alții le modifică (scriitorii).

Obiectivul principal este de a asigura:

  • Citirea simultană de către mai mulți cititori fără blocări (pentru a crește performanța).
  • Excluderea accesului simultan al unui scriitor cu alți scriitori sau cititori, pentru a evita condițiile de cursă și datele inconsistente.

Pentru aceasta, se folosesc mecanisme speciale de sincronizare — lock-uri cititor-scriitor (Reader-Writer locks). Acestea permit:

  • Ca mai mulți fire să citească în același timp.
  • Scrierea se face exclusiv, blocând ceilalți.

Aceasta îmbunătățește performanța comparativ cu mutex-urile obișnuite, care blochează complet accesul.

Pe iOS/Swift, pentru sarcini similare, se poate folosi DispatchQueue cu bariere (barrier), sau NSLock/pthread_rwlock_t pentru implementarea lock-urilor cititor-scriitor.