Pregunta

Un objeto QThread representa un único hilo de ejecución. Pero es la hebra de OS que se crea cuando se crea el objeto QThread, o cuando el método start() se llama?

Estoy interesado en saber si puedo tener varios objetos QThread por ahí, y el sistema operativo a crear hilos en start() y matarlos después vuelve run(), y luego puedo volver a utilizar el QThread objetos nuevo. Pero no quiero guardar los recursos del sistema operativo, mientras que los objetos QThread no están haciendo nada.

(para el registro, soy consciente de QtConcurrent y la QThreadPool, y no, no satisfacen mis necesidades en esta situación)

¿Fue útil?

Solución

En Linux se crea el objeto hilo (a través de pthread_create) durante el método QThread::start. Se ve casi lo mismo con Windows.

Se puede ver aquí la fuente:

Unix: http: // qt. gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_unix.cpp (línea 542).

Windows: http: // qt. gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_win.cpp (línea 419).

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