我已经使用了很多Qt,但最近需要调试我一直在创建的线程,并且发现了更多线程,然后我期待。
所以我的程序只是一个简单的控制台(没有GUI)Qt应用程序(linux)。
我创建的主题:
就是这样。当我做ps -T ...并找到我的应用程序时有7个线程。我有两个使用信号和插槽的QObjects类,所以他们可能需要一个用于消息处理的线程,这需要我4个线程...所以我不知道为什么我的应用程序可能有7个线程。
任何人都可以解释更多关于发生了什么的事情吗?可以根据需要发布代码。注意我只在代码中使用new QThread
一次(暂时)。
答案 0 :(得分:5)
Qt不会创建任何per - QObject
个线程。它为某些特定于平台的原因创建了辅助线程,例如: QProcess
有时需要辅助线程。
FTDI D2XX unix驱动程序使用libusb,并且该实现完全倒退,并在您为其提供的线程之上使用其他线程。坦率地说,你不应该在Linux或OS X上使用D2XX驱动程序。只需使用内核驱动程序。
您应该在一个简单的非Qt测试应用程序中运行D2XX驱动程序,该应用程序打开设备并连续读取它并查看它产生的线程数。你会感到沮丧......