LINUX.ORG.RU

QApplication a(argc,argv) - создаются 4 нити потока, так и должно быть?

 


0

2

Добрый день. Обнаружилась странность, раньше на qt 4.6.x при старте приложения создавался один центральный поток - это было логично и привычно.Перешел на Qt 5.6.2 - там создается сразу 4 нити, так и должно быть?

★★★★
Ответ на: комментарий от XMs

Кода слишком много и я к сожалению не могу его раскрывать, в топе видно что на момент выполнение 02 - появляется 4 нити.

01   QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
02    QApplication a(argc, argv);
03    MainWindow w;
    w.show();
    return a.exec();
Но если я создаю пустой проект с mainwindow, я вижу что поток и нить создаюся, как и положенно в одном экземпляре. Как то странно. Может ли moc до генерировать код и сразу до создавать потоки на будущее. В дальнейшем идет отделение одной нити на рутинные вычисления.

Silerus ★★★★
() автор топика
Ответ на: комментарий от Silerus

Без кода сложно что-то утверждать. Может, у тебя какие глобальные объекты начинают работать к тому моменту либо ожидают создания экземпляра QCoreApplication.


Может ли moc до генерировать код и сразу до создавать потоки на будущее

moc этим не занимается, насколько я знаю.

Рекомендую закомментировать весь main, включая setCodecForLocale, оставить только показ простого QWidget и проверить так. Если проблема исчезнет, потихоньку возвращать всё на место. Если нет, придётся лезть в gdb

XMs ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Как выяснилось, нет, не минимальный

XMs ★★★★★
()
Ответ на: комментарий от XMs

это идея спасибо, сейчас попробую

Silerus ★★★★
() автор топика

нормально, первая приложения, вторая xcb*, третья dbus*, а четвертую сам посмотри в отладчике (наверно плагин какой открыл чего ему надо)

x905 ★★★★★
()
Ответ на: комментарий от x905

нет тут что то нето с самим проектом, закомментировал вообще все, и все закомментировал в pro, оставил только чтоб «hello-world» собрался, так и то в 4 нити запустился, создал новый пустой проект «hello-world» - там одна нить. Буду пересоздавать проект и переносить исходники по одному, пока не пойму в чем дело.

Silerus ★★★★
() автор топика

Возможно используемые в проекте библиотеки запускают свои потоки при старте. Обычное, кстати, дело на *винде*.

m0rph ★★★★★
()
Ответ на: комментарий от m0rph

проект приехал с винды. Когда перевосоздам проект будет ясно. Всем спасибо за советы

Silerus ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.