Количество 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 примеров: Не осуждайте за грязь, просто важен сам факт наличия ограничения. |
|
|
Litkevich Yuriy |
27.6.2009, 22:02
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
alle-gro, почитай вот эту тему: Boost thread - ограниченное количество потоков?, непонятное ограничение, не связанное с ресурсами системы
Там довольно основательное иследование. |
|
|
alle-gro |
27.6.2009, 22:19
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 27.6.2009 Пользователь №: 859 Спасибо сказали: 0 раз(а) Репутация: 0 |
alle-gro, почитай вот эту тему: Boost thread - ограниченное количество потоков?, непонятное ограничение, не связанное с ресурсами системы Там довольно основательное иследование. Да, спасибо за ссылку, однако, нашел там подтверджение тому, что уже видел. Действительно кол-во потоков зависит от размера стэка для каждого потока, по-умолчанию в windows 1M. Тогда, используя функцию setStackSize(), по-идее, я должен бы получить хоть какой-то результат. Но уменьшение стэка в Windows ни к чему не привело. Здесь говорится, что в Linux- е можно как-то уменьшить размер стэка на поток, а вот что с Windows? |
|
|
Текстовая версия | Сейчас: 26.11.2024, 3:20 |