Сколько потоков создает Qt для работы в фоновом режиме? - PullRequest
4 голосов
/ 20 сентября 2009

Я часто использую Qt. Я хочу кое-что знать: сколько потоков создает Qt для вещей в фоновом режиме? как обработка сигналов и слотов ..

Кроме того, любой инструментарий GUI создает потоки событий (я помню, что Java это делает). Qt тоже его создает?

РЕДАКТИРОВАТЬ: когда я говорю "сколько потоков", я действительно имею в виду, какие темы

Спасибо
JRH

Ответы [ 3 ]

7 голосов
/ 20 сентября 2009

Сигналы и слоты Qt не реализованы с использованием нескольких потоков, это всего лишь способ ведения учета для распределения событий.

Одна вещь, которую вы можете сделать, это запустить вашу программу, сосчитать потоки, используя любое средство ОС, которое вам нравится (например, диспетчер задач в Windows), и посмотреть, соответствует ли оно тому, что вы ожидаете. Я не ожидал бы, что Qt создаст дополнительные потоки, если вы не попросите об этом.

3 голосов
/ 22 сентября 2009

QFileSystemModel использует отдельный поток для заполнения себя, поэтому он не приведет к зависанию основного потока при запросе файловой системы.

3 голосов
/ 21 сентября 2009

Как упоминал Грег, сигналы и слоты не используют потоки. Как правило, Qt никогда не будет создавать потоки для работы в фоновом режиме, за исключением:

  • Сетевой код, который может создать поток для поиска DNS.

  • QThreadPool создаст N + 1 потоков при инициализации (или при первом использовании), где N - количество ядер ЦП.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...