![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
alle-gro |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2009 Пользователь №: 859 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Привет всем,
столкнулся с неприятным явлением. Не могу получить больше чем 999 одновремено работающих потоков. 999 - это для потоков, которые не имеют очередь своих сообщений. Для потоков с очередью (тип exec()) - лимит 996. От количества памяти на компьютере не зависит. Нашел статью, где говорится что в Windows можно открыть 2000 потоков на 1 процесс, почему в Qt в половину меньше, кто-нибудь знает ответ на этот вопрос? Вот взял код и Qt примеров: Не осуждайте за грязь, просто важен сам факт наличия ограничения. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
alle-gro, почитай вот эту тему: Boost thread - ограниченное количество потоков?, непонятное ограничение, не связанное с ресурсами системы
Там довольно основательное иследование. |
|
|
alle-gro |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2009 Пользователь №: 859 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
alle-gro, почитай вот эту тему: Boost thread - ограниченное количество потоков?, непонятное ограничение, не связанное с ресурсами системы Там довольно основательное иследование. Да, спасибо за ссылку, однако, нашел там подтверджение тому, что уже видел. Действительно кол-во потоков зависит от размера стэка для каждого потока, по-умолчанию в windows 1M. Тогда, используя функцию setStackSize(), по-идее, я должен бы получить хоть какой-то результат. Но уменьшение стэка в Windows ни к чему не привело. Здесь говорится, что в Linux- е можно как-то уменьшить размер стэка на поток, а вот что с Windows? |
|
|
ViGOur |
![]()
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
alle-gro |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2009 Пользователь №: 859 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здесь говорится, что в Linux- е можно как-то уменьшить размер стэка на поток, а вот что с Windows? В видовс тоже можно, только это делается в реестре.Смотри по ссылке выше, приведенной Litkevich Yuriy, мой 2 пост. Да, большое спасибо, вижу, проверю, доложу о результатах ![]() В видовс тоже можно, только это делается в реестре. Смотри по ссылке выше, приведенной Litkevich Yuriy, мой 2 пост. Перечитал еще раз утверждение, получается, что размером сека потока рулит только линковщик, через реестр другими величинами рулят. Все сказанное в статье относится к VS. А вот как рулить линковщиком в Qt, можно ли там ему указать меньший размер стека? Думаю тот факт, что для VS рапортуют 2000 потоков, а в Qt это число 1000 и указывет, что default значение размера сека в Qt в 2 раза больше, выделяется, чем у VS проекта. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
SABROG |
![]()
Сообщение
#7
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
alle-gro |
![]()
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2009 Пользователь №: 859 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Не верю, не думаю, что Qt что то новое изобрели, это кто ж из obj файлов сшивает приложение, адреса функций раздает и.т.д ... вот смотрю в make файл и вижу LINK = g++, что-то мне подсказывает, что это линкощик.... |
|
|
AD |
![]()
Сообщение
#9
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Не верю, не думаю, что Qt что то новое изобрели, это кто ж из obj файлов сшивает приложение, адреса функций раздает и.т.д ... вот смотрю в make файл и вижу LINK = g++, что-то мне подсказывает, что это линкощик.... ![]() |
|
|
alle-gro |
![]()
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2009 Пользователь №: 859 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
![]() А, ну это придирка ![]() |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 0:31 |