1

QThreadオブジェクトは、実行の単一スレッドを表します。しかし、OSスレッドは、QThreadオブジェクトが作成されたとき、またはstart()メソッドが呼び出されたときに作成されますか?

複数のQThreadオブジェクトを配置できるかどうかに興味があります。OSはスレッドを作成し、戻っstart()た後にそれらを強制終了run()します。その後、QThreadオブジェクトを再利用できます。しかし、QThreadオブジェクトが何もしていない間はOSリソースを保持したくありません。

(記録のために、私はQtConcurrentとQThreadPoolを知っています、そしていいえ、これらはこの状況での私のニーズを満たしていません)

4

1 に答える 1

6

Linux では、スレッド オブジェクトはメソッドpthread_create中に ( 経由で)作成されます。QThread::startWindowsとほぼ同じように見えます。

ここでソースを見ることができます:

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 行目)。

于 2010-02-15T21:48:21.293 に答える