2011-10-27 16 views
8

Tengo un requisito para ejecutar un pequeño conjunto de tareas relacionadas en un hilo personalizado creado para ellas. Las tareas se programarán desde diferentes clases. Estoy planeando usar dispatch_queue_create de GCD para crear el hilo personalizado y programar la tarea en él. Tenga en cuenta que todas las tareas relacionadas deben ejecutarse solo en ese subproceso en orden.
Así que mi pregunta es si llamo a dispatch_queue_create ("my_custom_thread_label", NULL) con la misma etiqueta de muchas clases en mi base de código, ¿se correlacionaría eventualmente con un solo hilo? ¿O necesito crearlo en un lugar y obtener una referencia cuando sea necesario? Gracias.dispatch_queue_create varias invocaciones con la misma etiqueta

Respuesta

8

Necesita crearlo en un lugar y pasar el puntero.

+4

Pero, ¿qué ocurre si simplemente llamas 'dispatch_queue_create' con la misma etiqueta varias veces? – Endophage

+2

Le da una nueva instancia de la cola y la anterior tiene fugas, es como un objeto. – odyth

+0

odyth: eso parece incompatible con la documentación: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/dispatch_queue_create.3.html La etiqueta solo se proporciona FYI, y está (en hecho) opcional. Puede proporcionar una etiqueta en blanco. Cada vez que llamas a d_q_c() devuelve un * nuevo * objeto de cola - sin pérdidas. –

Cuestiones relacionadas