QThreadの実装についての質問
-
20-09-2019 - |
質問
QThreadオブジェクトは、実行の単一スレッドを表します。しかし、作成したOSのスレッドがあるQThreadオブジェクトが作成されたとき、またはstart()
メソッドが呼び出されたときに?
私は転がって、いくつかのQThreadオブジェクトを持つことができるかどうかに興味がある、とOSはstart()
にスレッドを作成し、run()
戻った後、それらを殺す、と、私はQThreadは再びオブジェクトを再利用することができます。しかし、私はQThreadオブジェクトが何もしていない間OSのリソースを保持する必要はありません。
(記録のために、私はQtConcurrentとQThreadPoolの意識だし、いや、彼らはこのような状況で私のニーズを満たしていない)
解決
Linuxでは、スレッドオブジェクトはpthread_create
方法の間(QThread::start
介して)作成されています。これは、Windowsとほぼ同じに見えます。
現在のページのソースを見ることができます:
UNIXの場合:ます。http:// QT。 gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_unix.cppする(ライン542)。
Windowsの場合:ます。http:// QT。 gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_win.cppする(ライン419)。
所属していません StackOverflow