Pregunta

Quiero saber si los bloques en c / cacao se ejecutan en un subproceso independiente para el hilo principal. Iban a ser útil para la ejecución de código computacionalmente costosa, dejando la interfaz de usuario sensible?

¿Fue útil?

Solución

Los bloques son sólo fragmentos de código arropados en un objeto invocable. Cómo corren es totalmente de código que llama.

Ejecución de bloques en un subproceso independiente no sólo es posible, sino que es precisamente la razón por la que se introdujo el concepto de bloques. Existe para apoyar Grand Central Dispatch, que esconde una gran cantidad de la complejidad de la programación concurrente detrás de un modelo orientado a la tarea.

Otros consejos

Ellos no tienen que ejecutarse en otro hilo, pero se puede. Puede programarlos en NSOperationQueues o colas GCD, y esas colas pueden ser drenado por hilos de fondo.

Y sí, esto puede ser una construcción útil para ayudarle a obtener tiempo de trabajo fuera del hilo principal. Pero eso no es todo lo que los bloques son útiles para, y por el contrario se puede hacer el proceso de fondo con o sin bloques.

Se puede usar GCD para programar bloques para la emisión de otros hilos. Los dos se introdujeron juntos, por lo que cualquier discusión de la que suele hacer mención de otra. Sin embargo, los bloques no son en sí mismos un mecanismo inherentemente multi-hilo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top