Возможно ли каким-либо образом изменить лимит на число pthreads, которое может создать процесс? В настоящее время в моей Linux-системе я могу создать около 380 потоков, но я хочу увеличить это, чтобы сказать, пока доступна память.
Изменение предела максимального количества pthreads приложением
Ответ 1
уменьшить размер стека пользователя 'ulimit -s 1024
';
default: 8MB
reduced: 1MB
для увеличения количества потоков.
установите размер стека: pthread_attr_setstacksize(1024)
Ответ 2
Ваша проблема в том, что вы не вызывали pthread_detach в соответствующих потоках. Это сообщает pthread, что ресурсы, связанные с каждым потоком, будут освобождены, когда поток завершится. Вы должны вызвать pthread_join или pthread_release для всех потоков, чтобы освободить ресурсы потоков. Это означает, что вам также нужно вызвать pthread_detach в ваших обработчиках отмены pthread_join или утечке.
Ответ 3
cat /proc/sys/kernel/threads-max
может работать в Linux, но не в других UNIX-системах. Я думал, что правильный путь
Максимальное количество потоков на процесс - сбой sysconf (_SC_THREAD_THREADS_MAX)
который работает на некоторых UNIX-системах (например, HPUX), но не на Solaris или Linux...
Ответ 4
Посмотрите на это:
Максимальное количество потоков для процесса в Linux?
И взгляните на это, поскольку это может относиться к вашему вопросу: