Книга: Системное программирование в среде Windows
Стеки потоков и допустимые количества потоков
Стеки потоков и допустимые количества потоков
Следует сделать еще два предостережения. Во-первых, подумайте о размере стека, который по умолчанию составляет 1 Мбайт. В большинстве случаев этого будет вполне достаточно, но если существуют какие-либо сомнения на сей счет, оцените максимальный объем стекового пространства, которое требуется для каждого потока с учетом всех библиотечных и рекурсивных функций, которые вызываются потоком. Переполнение стека может привести к порче памяти или вызвать исключение.
Во-вторых, использование большого количества потоков с большими размерами стеков потребует больших объемов виртуальной памяти для их обработки и может оказать отрицательное влияние на процессы страничного обмена и состояние файла подкачки. Так, использовать свыше 1000 потоков в некоторых из примеров, приведенных в этой и последующей главах, было бы неразумно. При размере стека 1 Мбайт на один поток для этого потребовалось бы виртуальное адресное пространство объемом 1 Гбайт. Соответствующие меры предосторожности включают тщательное планирование размеров стеков, использование портов завершения ввода/вывода и мультиплексирование операций в пределах одного потока.
- Модель переменных условий и свойства безопасности
- Пример: объект порогового барьера
- Объект очереди
- Пример: использование очередей в многоступенчатом конвейере
- Асинхронные вызовы процедур
- Очередизация асинхронных вызовов процедур
- Состояния дежурного ожидания
- Безопасная отмена выполнения потоков
- Создание переносимых приложений с использованием потоков Pthreads
- Стеки потоков и допустимые количества потоков
- Рекомендации по проектированию, отладке и тестированию программ
- Как избежать создания некорректного программного кода
- За рамками Windows API
- Резюме
- Упражнения
- ГЛАВА 10 Усовершенствованные методы синхронизации потоков
- Создание переносимых приложений с использованием потоков Pthreads
- Достоинства и недостатки потоков
- 1.2. Определение количества информации. Единицы измерения количества информации
- 4.3 Потоковый редактор sed
- Стеки на основе односвязных списков
- Множество потоков, соревнующихся между собой за обладание единственным ресурсом
- Совет 12. Разумно оценивайте потоковую безопасность контейнеров STL
- Необходимость в синхронизации потоков
- 26.5. Собственные данные потоков
- Нормирование количества SKU в ассортименте
- Объекты синхронизации потоков