Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Потоки в Windows и их данные.  (Прочитано 13 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Aether
Молодой специалист

ru
Offline Offline
Пол: Мужской

« : Вчера в 17:39 » 

Доброго вечера.

Хочу поинтересоваться для собственного развития: в Windows есть функция CreateThread(). Как я понял, стек потока создаётся в адресном пространстве процесса, а это означает, что скорее всего происходит выделение под него из кучи. В функции изначально есть параметр задающий размер стека, по умолчанию, выделяется 1 МБ.

Что будет, если в функции будет присутствовать какая-либо рекурсия, которая может превысить заданный размер стека потока?

Второе, эти потоки могут выполняться разными ядрами, или это просто логическое разделение?

Как правильно выделять память внутри потока?

Что посоветуете почитать?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : Вчера в 23:03 » new

Стек к куче не относится. Про рост стека поищи guard page, это позволяет выделить под стек минимальный объем памяти с автоматическим ростом до установленного лимита. Попытка превысить лимит, скорее всего, вызовет фатальную для процесса ошибку. Это надо рассматривать конкретную ОС.

Потоки могут исполняться где угодно. Все зависит от планировщика ОС. Потоки процессора изолированы также, как разные ядра, они лишь разделяют вычислительные блоки.

Про динамическую память стоит помнить: ее надо не только выделять, но и освобождать. Политика и ограничения зависят от аллокатора.
Хороший стиль: выделять и освобождать в одном потоке. Вообще надо стараться минимизировать совместный доступ потоков к rw данным, это снижает вероятность ошибок. Это мое мнение. Возможно кто-то считает иначе. По мне многопроцессность надежнее многопоточности.
« Последнее редактирование: Вчера в 23:18 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines