Junior — Middle
O que acontece se usar a gestão síncrona na fila principal em um contexto global?
sobes.tech IA
Resposta da IA
Se fizer uma chamada de despacho síncrona (por exemplo, DispatchQueue.main.sync { ... }) na fila principal a partir do thread principal, ocorrerá um deadlock (bloqueio mútuo).
A razão é que a fila principal já está ocupada a executar o código atual, e a chamada síncrona tenta executar um bloco esperando que ele termine. Mas o bloco não pode começar até que o código atual termine, levando a uma espera infinita.
Portanto, deve evitar chamadas síncronas na fila principal a partir do thread principal. Em vez disso, use chamadas assíncronas (DispatchQueue.main.async { ... }), que colocam o bloco na fila e permitem que o código atual termine.