/* Page prose (es) */
"WrappingUp" = "# Resumen\n\nToda la promesa de GCD es que dejas de gestionar hilos y empiezas a entregar clausuras a **colas**. Familiarízate con qué cola hace qué, y con la única decisión de `async` frente a `sync`, y el resto son detalles. La mayoría de los filos afilados viven alrededor de `sync`, así que lee las conclusiones de abajo antes de recurrir a él.\n\n* **GCD gestiona los hilos por ti.** Entregas clausuras a **colas**; no creas hilos por tu cuenta.\n* Tres colas: **principal** (UI, serial), **global** (segundo plano compartido, concurrente) y **personalizada** (`DispatchQueue(label:)`, serial por defecto). Recurre a una cola personalizada para proteger estado o dar nombre a una línea de trabajo; para \"sacar esto del principal,\" `global()` es más simple.\n* **`async`** programa el trabajo y devuelve el control de inmediato; **`sync`** bloquea el hilo actual hasta que el trabajo termina. Casi siempre quieres `async`.\n* Las colas **seriales** garantizan el orden y la ausencia de solapamiento; las colas **concurrentes** ejecutan las tareas en paralelo y terminan en cualquier orden. Nunca dependas de ese orden de finalización.\n* El patrón central es **trabajar en una cola en segundo plano y luego saltar de vuelta a `DispatchQueue.main.async` para actualizar la UI**: tocar la UI fuera del hilo principal es comportamiento indefinido.\n* La **QoS** le dice a GCD qué tan urgente es el trabajo; elígela preguntándote si hay alguien esperando, y si lo está mirando.\n* **Trampa:** `main.sync` desde el hilo principal produce un **interbloqueo**. Nunca lo hagas.\n\n---\n\n## A continuación\n\nLo siguiente es **[Grupos y semáforos](Groups%20and%20Semaphores.playgroundchapter/Overview)**: cómo esperar a que termine todo un lote de trabajo despachado, y cómo limitar cuántas tareas tocan un recurso a la vez.\n\n[Anterior](@previous)  |  página 9 de 9";
