我经常使用qt。我想知道一些事情:Qt在后台处理信号和槽等任务时会创建多少个线程?另外,任何GUI工具包都会创建事件线程(我记得Java也是这样)。Qt也会创建一个吗?
编辑:当我说“多少个线程”时,我真正想知道的是哪些线程。
谢谢, jrh
编辑:当我说“多少个线程”时,我真正想知道的是哪些线程。
谢谢, jrh
Qt的信号和槽并不是使用多个线程实现的,它们只是处理事件分发的一种方式。
你可以运行程序,使用你喜欢的操作系统工具(例如Windows上的任务管理器)计算线程数量,看看是否与你预期的相符。我不会期望Qt创建任何额外的线程,除非你要求它这样做。
网络代码可以创建一个线程来进行DNS查询。
当您初始化QThreadPool(或首次使用它)时,QThreadPool将创建N + 1
个线程,其中N是CPU核心数。
QFileSystemModel
使用单独的线程来填充自身,因此在查询文件系统时不会导致主线程挂起。