Я взял пример с
https://www.kernel.org/doc/man-pages/online/pages/man3/pthread_create.3.html
заставил его работать бесконечно (с небольшим сном, поэтому использование ЦП не является узким местом, поэтому нет очереди потоков), создавая потоки с pthread_create
без вызова pthread_join
. Это вызывает утечку памяти, и в конечном итоге на ПК заканчивается память. Когда я добавил pthread_detach
сразу после создания потока, программа ведет себя хорошо, и через некоторое время использование памяти остается постоянным.
У меня сложилось впечатление, что при выходе из потока (при закрытии }
функции, если она задана pthread_create
), все его ресурсы очищаются.