Frage

A QThread Objekt stellt einen einzelnen Ausführungs-Thread. Aber ist der OS-Thread erstellt, wenn das QThread Objekt erstellt wird, oder wenn die start() Methode aufgerufen wird?

Ich bin daran interessiert, ob ich mehrere QThread um Objekte herum liegen haben kann, und das Betriebssystem wird Threads auf start() erstellen und tötet sie nach run() zurückkehrt, und dann kann ich wieder verwenden die QThread wieder Objekte. Aber ich will nicht zu halten OS Ressourcen, während die QThread Objekte nichts zu tun.

(für das Protokoll, ich bin mir dessen bewusst QtConcurrent und der QThreadPool, und nein, sie nicht erfüllen meine Bedürfnisse in dieser Situation)

War es hilfreich?

Lösung

In Linux das Thread-Objekt wird erstellt (via pthread_create) während der QThread::start Methode. Es sieht etwa die gleiche Windows.

Sie können die Quelle sehen hier:

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

Fenster: http: // qt. gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_win.cpp (Linie 419).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top