Junior — Middle
¿Qué sucede si se utiliza la gestión sincronizada en la cola principal en un contexto global?
sobes.tech AI
Respuesta de la IA
Si se realiza una llamada de despacho síncrona (por ejemplo, DispatchQueue.main.sync { ... }) en la cola principal desde el hilo principal, ocurrirá un bloqueo mutuo (deadlock).
La razón es que la cola principal ya está ocupada ejecutando el código actual, y la llamada síncrona intenta ejecutar un bloque esperando a que termine. Pero el bloque no puede comenzar hasta que el código actual termine, lo que lleva a una espera infinita.
Por lo tanto, se deben evitar las llamadas síncronas en la cola principal desde el hilo principal. En su lugar, utilice llamadas asíncronas (DispatchQueue.main.async { ... }), que colocan el bloque en la cola y permiten que el código actual finalice.