guía de enhebrado de Apple dice:¿Hay alguna manera de ingresar al modo multiproceso Cocoa sin crear NSThread falso?
Para las aplicaciones multitarea, marcos de cacao utilizar bloqueos y otras formas de sincronización interna para asegurar que se comportan correctamente. Sin embargo, para evitar que estos bloqueos degraden el rendimiento en el caso de subproceso único, Cocoa no los crea hasta que la aplicación genere su primer subproceso nuevo utilizando la clase NSThread. Si genera subprocesos utilizando solo rutinas de subprocesos POSIX, Cocoa no recibe las notificaciones que necesita para saber que su aplicación ahora tiene varios subprocesos. Cuando eso sucede, las operaciones que involucran los marcos de Cocoa pueden desestabilizar o bloquear su aplicación.
Para hacerle saber a Cocoa que tiene la intención de utilizar varios subprocesos, todo lo que tiene que hacer es generar un único subproceso con la clase NSThread y dejar que el subproceso termine inmediatamente. El punto de entrada de tu hilo no necesita hacer nada. Solo el acto de generar un hilo usando NSThread es suficiente para garantizar que los bloqueos necesarios para los marcos Cocoa se pongan en su lugar.
En mi aplicación de iOS, estoy comenzando varios subprocesos desde código C++ desde el principio. Para asegurarse de que la aplicación se comporta correctamente, de acuerdo con el documento anterior, creo un NSThread falso que no hace nada. No me gusta crear un código tan inútil (generalmente es WTF, cuando lo lees por primera vez) y quiero evitar hacerlo. ¿Hay alguna forma mejor de poner mi aplicación en modo multiproceso?
Ayudaría a ver el código donde usted crea el NSThread. ¿Estás llamando "inicio" en el hilo? – pzearfoss