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.