Sobes.tech
Middle+

O que pode contar-me sobre o problema do Leitor-Escritor?

sobes.tech IA

Resposta da IA

O problema de Leitor-Escritor ocorre quando múltiplos threads acessam simultaneamente um recurso comum, onde alguns apenas leem os dados (leitores), e outros os modificam (escritores).

A principal tarefa é garantir:

  • Leitura simultânea por vários leitores sem bloqueios (para aumentar o desempenho).
  • Evitar o acesso simultâneo de um escritor com outros escritores ou leitores, para evitar condições de corrida e dados inconsistentes.

Para isso, usam-se mecanismos de sincronização especiais — bloqueios de Leitor-Escritor (Reader-Writer locks). Estes permitem:

  • Que vários threads possam ler ao mesmo tempo.
  • A escrita ocorre de forma exclusiva, bloqueando os outros.

Isto melhora o desempenho em comparação com mutexes normais, que bloqueiam completamente o acesso.

No iOS/Swift, para tarefas semelhantes, pode-se usar DispatchQueue com barreiras (barrier), ou NSLock/pthread_rwlock_t para implementar bloqueios de Leitor-Escritor.