我已经使用过很多Qt,但最近需要调试我一直在创建的线程,然后发现了更多的线程,然后我期待着。所以我的程序只是一个简单的控制台(没有GUI)Qt应用程序(linux)。我创建Qt似乎使用了很多线程
主题:
- 它有一个main()(执行该QtCoreApplication) - 所以这是主线程。
- 线程以处理从com端口(使用FTDI D2XX第三方代码驱动器)
接收到的数据,这是所有。当我做ps -T ...并找到我的应用程序时,有7个线程。我有两个类是使用信号和插槽的QObject,所以也许他们需要一个线程来处理消息,这需要我4线程...所以我不知道为什么我可能有7个线程为我的应用程序。
任何人都可以解释更多关于发生了什么?如果需要可以发布代码。注意我只在代码中使用了new QThread
(目前)。
我无法想象为什么Qt会创建额外的线程,而不会被要求,特别是没有GUI,但也许他不是罪魁祸首。尝试禁用线程的创建,也许FTDI驱动创建了其他3. –
AFAIK信号+按钮点击等普通事件的插槽不需要额外的线程。它们在事件循环中处理。 –
Qt应用程序会产生整个lotta线程,特别是GUI应用程序。 –