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