Я пишу некоторый код, который порождает довольно много потоков (около 512 в данный момент, но в будущем он может вырасти). Каждый из потоков выполняет только небольшое количество операций, поэтому я хочу, чтобы накладные расходы, которые потоки помещают в систему, были минимальными.
Я устанавливаю размер стека с помощью pthread_attr_setstacksize()
, и я могу получить минимально допустимый размер стека из PTHREAD_STACK_MIN
. Но мой вопрос: Безопасно ли использовать PTHREAD_STACK_MIN
для размера стека потока? Как мне рассчитать, сколько стека мне нужно? Есть ли какие-то скрытые накладные расходы, которые мне нужно будет добавить в мои расчеты?
Кроме того, есть ли другие методы, которые я могу использовать, чтобы уменьшить нагрузку на потоки в системе?