关于QThread实施的问题

Luc*_*cas 1 qt multithreading qthread

QThread对象表示单个执行线程.但是在创建QThread对象时,或者在start()调用方法时是否创建了OS线程?

我对是否可以放置几个QThread对象感兴趣,操作系统将创建线程start()并在run()返回后终止它们,然后我可以再次重用QThread对象.但我不想在QThread对象没有做任何事情时保留OS资源.

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

Kyl*_*utz 6

在Linux中,线程对象pthread_createQThread::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行).