Изменение предела максимального количества pthreads приложением

Возможно ли каким-либо образом изменить лимит на число pthreads, которое может создать процесс? В настоящее время в моей Linux-системе я могу создать около 380 потоков, но я хочу увеличить это, чтобы сказать, пока доступна память.

Ответ 1

уменьшить размер стека пользователя 'ulimit -s 1024';

default: 8MB 
reduced: 1MB 

для увеличения количества потоков.

установите размер стека: pthread_attr_setstacksize(1024)

Ответ 2

Ваша проблема в том, что вы не вызывали pthread_detach в соответствующих потоках. Это сообщает pthread, что ресурсы, связанные с каждым потоком, будут освобождены, когда поток завершится. Вы должны вызвать pthread_join или pthread_release для всех потоков, чтобы освободить ресурсы потоков. Это означает, что вам также нужно вызвать pthread_detach в ваших обработчиках отмены pthread_join или утечке.