Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Насчет 1000 потоков - небольшой ликбез 06.11.05 20:48 Число просмотров: 1598
Автор: Killer{R} <Dmitry> Статус: Elderman
|
Каждый поток по дефолту отжирает мегабайт адресного пространства процесса под свой стек. Т.е. память не выделяется сразу, просто адреса резервируются (выделение памяти происходит по мере роста стека потока). А поскольку адресное пространство ограничено 2 Гб то при кол-ве потоков 2000 оно закнчится. В реальных условиях количество еще меньше так как адресное пространство используетя не только для стеков. Решения - либо в настройках линкера уменьшить размер стека, либо резервировать под стек меньше адресного пространства в CreateThread, но флаг STACK_SIZE_PARAM_IS_A_RESERVATION появился только в ХР. А лучше если потоков реально так много - менять архитектуру.
|
|
|