Qt创建了多少线程在后台工作?

时间:2009-09-20 07:18:05

标签: qt multithreading

我经常使用qt。我想知道一些事情:Qt创建了多少线程在后台做事情?喜欢处理信号和插槽..

此外,任何GUI工具包也会创建事件线程(我好像记得java一样)。 Qt也会创建吗?

编辑:当我说“线程数”时,我的意思是哪个线程

谢谢,
JRH

3 个答案:

答案 0 :(得分:7)

Qt的信号和插槽没有使用多个线程实现,它们只是处理事件分发簿记的一种方式。

您可以做的一件事是运行您的程序,使用您喜欢的任何操作系统(例如Windows上的任务管理器)计算线程,并查看它是否符合您的预期。除非你问它,否则我不希望Qt创建任何额外的线程。

答案 1 :(得分:3)

正如Greg所说,信号和插槽不使用线程。通常,Qt永远不会创建在后台执行操作的线程,除了:

  • 网络代码,可以创建执行DNS查找的线程。

  • QThreadPool在初始化时会创建N + 1个线程(或第一次使用它),其中N是CPU核心数。

干杯,

答案 2 :(得分:3)

QFileSystemModel使用单独的线程来填充自身,因此在查询文件系统时不会导致主线程挂起。