一个的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)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top