2009-02-25 2 views
2

В одном из многопоточных приложений Linux приложение завершает работу без удаления потока. Это приведет к утечке ресурсов потока. Если это приложение запускается много раз в течение дня, произойдет ли сбой системы?Linux поток утечки ресурсов?

ответ

3

Ядро, как правило, очищает ресурсы процесса (открытые файлы, потоки, выделенная память и т. Д.), Когда он выходит, поэтому я не думаю, что вам нужно беспокоиться. Хотя было бы стилистически лучше удалить поток явно, возможно, в зависимости от вашего предпочтительного стиля кодирования.

4

По большей части все ресурсы, используемые программой, очищаются, когда программа существует. Есть несколько исключений (неполный список здесь, без сомнения):

  • файлов, созданных (Дух!)
  • TCP сокетов могут занять несколько минут после выхода из программы, чтобы полностью очистить (например, TIME_WAIT розетки)
  • SysV разделяемой памяти, семафоры и очереди сообщений (чистят вручную с помощью ИНКЭХ/ipcrm)

кроме этого, почти все очищается. Включая темы.

Естественно, вы должны проверить это.

+0

+1, его лучше знать, что на самом деле делали эти потоки. –

Смежные вопросы