题
一个的QThread对象表示单个执行线程。但是所创建的OS线程创建的QThread对象时,或者当start()
方法被调用?
我感兴趣的是我是否能有几个对象的QThread躺在身边,操作系统将在start()
创建线程和run()
返回后杀死他们,然后我可以重复使用的QThread再次对象。但我不希望持有OS的资源,而QThread的对象没有做任何事情。
(根据记录,我知道QtConcurrent和QThreadPool,并没有,他们没有满足我在这种情况下需要)
解决方案
在Linux的线程对象是pthread_create
方法期间(经由QThread::start
)创建。它看起来大约与Windows相同。
您可以看到这里的源:
Unix的: HTTP:// QT。 gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_unix.cpp (线542)。
视窗: HTTP:// QT。 gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_win.cpp (线419)。
不隶属于 StackOverflow