1

QThread 对象代表单个执行线程。但是操作系统线程是在创建 QThread 对象时创建的,还是在start()调用方法时创建的呢?

我感兴趣的是我是否可以有几个 QThread 对象,操作系统会在返回start()后创建线程并杀死它们run(),然后我可以再次重用 QThread 对象。但是我不想在 QThread 对象不做任何事情时持有操作系统资源。

(作为记录,我知道 QtConcurrent 和 QThreadPool,不,在这种情况下它们不能满足我的需求)

4

1 回答 1

6

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

于 2010-02-15T21:48:21.293 回答