Количество QThread потоков ограничено |
Здравствуйте, гость ( Вход | Регистрация )
Количество QThread потоков ограничено |
alle-gro |
27.6.2009, 21:26
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2009 Пользователь №: 859 Спасибо сказали: 0 раз(а) Репутация: 0 |
Привет всем,
столкнулся с неприятным явлением. Не могу получить больше чем 999 одновремено работающих потоков. 999 - это для потоков, которые не имеют очередь своих сообщений. Для потоков с очередью (тип exec()) - лимит 996. От количества памяти на компьютере не зависит. Нашел статью, где говорится что в Windows можно открыть 2000 потоков на 1 процесс, почему в Qt в половину меньше, кто-нибудь знает ответ на этот вопрос? Вот взял код и Qt примеров: Не осуждайте за грязь, просто важен сам факт наличия ограничения. |
|
|
SABROG |
29.6.2009, 10:41
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
alle-gro |
29.6.2009, 16:31
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2009 Пользователь №: 859 Спасибо сказали: 0 раз(а) Репутация: 0 |
А вот как рулить линковщиком в Qt, можно ли там ему указать меньший размер стека? ld --stack <size> или gcc -Wl,--stack=<size> Вот только вопрос, наследуется ли размер стека для потоков. А можно как-нибудь, через переменные среды или через файл проекта или через Qt Creator конфигурационные настройки задать эти параметры?(Не привычно через командгую строку компилять...) А вообще, похоже дело дрянь, лучший, способ переписать приложение и воспользоваться советом создать пул потоков, которые будут разгребать очередь сообщений..... а мне то всего было нужно 2000 потоков ... и во неприятное прояснение .... ну почему QThred - ов в Qt тольоко 1000 на процесс... везде писали что в в Винде можно по-умолчанию 2K иметь... А, ну это придирка , ... Я как-то Qt рассматриваю, как одно целое, начиная с 4.5. Оно даже IDE свое стало иметь, а компилятор, линковщик, дебаггер у нее, для windows, например, тоже рекомендованные из mingw пакета. впервые слышу. Это не придирка! Qt- средство для разработки GUI, для работы с потоками, XML и прочее. А как IDE ее нельзя рассматривать! Для этого есть MinGW, Qt Creator, Studio, в конце концов. Или же еще что-нибудь! Точнее Qt - это кросс- платформенная библиотека классов (типа MFC), разве Вы не видите тенденцию ее превращения в IDE (Типа Delphi, Builder или VS). Я не спорю, что кому что нравится, кто Eclipse, кто VS, кто QDevelop, кто Qt Creator использует, как редакторы, компилятор и линковщик по-умолчанию из mingw для Windows (тоже можно сказать, что это уже де-факто...) И Все вмете это уже IDE, я вот, например, вообще не пользовался никогда командной строкой в Qt, правкой makefiles, запуском qmake -все это уже далется из среды... |
|
|
Текстовая версия | Сейчас: 26.11.2024, 3:48 |