2009-09-20 83 views
3

我用QT了很多。我想知道一些事情:Qt在後臺創建多少個線程?像處理信號和槽..Qt在後臺創建多少個線程?

此外,任何GUI工具包創建事件線程太多(我似乎記得Java那樣)。 Qt是否也創建一個?

編輯:當我說「多少線程」,我真的是哪些線程

感謝,
JRH

回答

6

Qt的信號和槽使用多線程不落實,他們只是一個方式處理事件分發的簿記。

有一件事你能做的就是運行您的程序,計算使用任何OS功能,您喜歡(如Windows任務管理器)的線程,看看是否符合你的期望。除非您提出要求,否則我不會希望Qt創建任何其他線程。

+0

好吧,我寫一個程序驗證了這一點...謝謝 – jrharshath 2009-09-20 08:39:28

3

作爲格雷格提到的,信號和槽不使用螺紋。一般來說,QT永遠不會創建線程做事情的背景,除了:

  • 網絡代碼,它可以創建一個線程來執行DNS查找。

  • QThreadPool將在初始化(或首次使用它)時創建N + 1線程,其中N是CPU核心的數量。

乾杯,

3

QFileSystemModel使用一個單獨的線程來填充自身,所以不會造成主線程掛起,文件系統被查詢。

相關問題