Я пришел к выводу, что, вероятно, это было явление:
http://kerneltrap.org/mailarchive/linux-kernel/2008/8/15/2950234/thread
, поскольку ошибку трудно вызвать в наших системах разработки, но обычно о ней сообщают пользователи, работающие на больших общих машинах; также разветвленное приложение запускает JVM, которая сама выделяет много потоков. Эта проблема также связана с загружаемой машиной и интенсивным использованием памяти (у нас есть машина с 128 ГБ ОЗУ и процессами размером 10-100 ГБ).
Я читал книгу pthreads O'Reilly, в которой объясняется pthread_atfork () и предлагается использовать процесс «суррогатного родителя», разветвленный из основного процесса при запуске, из которого запускаются подпроцессы. Также предлагается использовать предварительно созданный пул потоков. Обе эти идеи кажутся хорошими, поэтому я собираюсь реализовать хотя бы одну из них.