Sobes.tech
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.