我经常使用qt。我想知道一些事情:Qt创建了多少线程在后台做事情?喜欢处理信号和插槽..
此外,任何GUI工具包也会创建事件线程(我好像记得java一样)。 Qt也会创建吗?
编辑:当我说“线程数”时,我的意思是哪个线程
谢谢,
JRH
答案 0 :(得分:7)
Qt的信号和插槽没有使用多个线程实现,它们只是处理事件分发簿记的一种方式。
您可以做的一件事是运行您的程序,使用您喜欢的任何操作系统(例如Windows上的任务管理器)计算线程,并查看它是否符合您的预期。除非你问它,否则我不希望Qt创建任何额外的线程。
答案 1 :(得分:3)
正如Greg所说,信号和插槽不使用线程。通常,Qt永远不会创建在后台执行操作的线程,除了:
网络代码,可以创建执行DNS查找的线程。
QThreadPool在初始化时会创建N + 1
个线程(或第一次使用它),其中N是CPU核心数。
干杯,
答案 2 :(得分:3)
QFileSystemModel
使用单独的线程来填充自身,因此在查询文件系统时不会导致主线程挂起。