Junior — Middle
Que métodos ou ferramentas utilizas para gerir a sincronização de threads e prevenir condições de corrida?
sobes.tech IA
Resposta da IA
Para gerir a sincronização de threads e evitar condições de corrida no iOS, uso:
- GCD (Grand Central Dispatch) com filas seriais e concorrentes para controlar o acesso aos recursos.
- DispatchSemaphore para limitar o acesso simultâneo.
- NSLock, NSRecursiveLock e outras primitivas de bloqueio para proteger secções críticas.
- Uso de operações atómicas e propriedades com o atributo @synchronized ou através de DispatchQueue.
Exemplo de uso de uma DispatchQueue serial para sincronização:
let serialQueue = DispatchQueue(label: "com.example.serialQueue")
var recursoCompartilhado = 0
serialQueue.async {
recursoCompartilhado += 1
}
serialQueue.async {
print(recursoCompartilhado)
}