Junior — Middle
Pode explicar o que se entende por Lock no contexto de multithreading ou sincronização?
sobes.tech IA
Resposta da IA
Lock (bloqueio) é um mecanismo de sincronização utilizado para controlar o acesso a recursos partilhados em um ambiente multithread. Ele garante que apenas um thread possa executar a secção crítica do código num dado momento, prevenindo condições de corrida e assegurando a integridade dos dados.
No iOS, frequentemente usam-se objetos como NSLock, DispatchSemaphore ou @synchronized.
Exemplo de uso do NSLock:
let lock = NSLock()
func criticalSection() {
lock.lock()
// código que deve ser executado por apenas um thread
lock.unlock()
}
Sem bloqueio, vários threads poderiam modificar os dados simultaneamente, levando a erros.