Размер стека в Unix pthread_create - PullRequest
3 голосов
/ 07 марта 2012

Я создаю 10 потоков, используя pthread_create в моем приложении.Какой размер стека по умолчанию назначен каждому потоку?

Я пытаюсь отладить сбой, когда мое приложение падает по недопустимой инструкции, где один из указателей функции сбрасывается в 0. Одним из признаков этого может быть то, что поток моего приложения исчерпал размер стекаи он перезаписал существующее пространство стека, в котором находился указатель функции.

1 Ответ

1 голос
/ 09 марта 2012

См. https://computing.llnl.gov/tutorials/pthreads/ для учебника по pthreads.Вы устанавливаете начальный размер стека с помощью параметра attr, созданного с помощью pthread_attr_init.В целом, однако, вы не хотите иметь огромный стек.Если вы выделяете в стеке несколько сотен килобайт, вам может оказаться проще отлаживать вашу программу, выделяя данные в куче и освобождая их по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...