La API de GCD describe la asincronía, pero no necesariamente la concurrencia y definitivamente no el enhebrado. Como tal, se esfuerza por hacer el uso más eficiente de los recursos del dispositivo.
En una máquina multinúcleo que puede significar ejecutar múltiples bloques simultáneamente en múltiples núcleos. Pero en una máquina de un solo núcleo, como la mayoría de los iPhones, agregar subprocesos adicionales para ejecutar múltiples bloques al mismo tiempo simplemente conlleva una sobrecarga de cambio de contexto, lo que significa un uso menos eficiente del hardware (y recuerde, la eficiencia de la CPU se traduce en la duración de la batería).
Por lo tanto, GCD no es la herramienta adecuada para garantizar la concurrencia sin tener en cuenta el uso óptimo del dispositivo. En cambio, los hilos o algún análogo de corutinas pueden ser más adecuados para lograr su objetivo.
- ¿Cuáles son algunas de las formas más populares y actualmente implementadas en las que se utiliza iBeacon?
- Cómo arreglar una señal SIGABRT
- ¿Qué aplicaciones de Android son similares a Lumosity y Elevate (juegos cognitivos del cerebro) en iOS?
- ¿Debo actualizar el iPhone SE a iOS 11?
- Bloqueé mi iPod porque olvidé mi nueva contraseña. Ahora recuerdo el código de acceso, pero ya está bloqueado. ¿Hay alguna manera de desbloquearlo para que pueda ingresar la contraseña correcta?
Por otro lado, si simplemente desea programar asincrónicamente algún trabajo para que se realice de la manera más eficiente, independientemente del dispositivo en el que su código termine implementado, GCD es la herramienta adecuada para el trabajo. ¡Y también serializa!