我已經使用過很多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應用程序。 –