Вызывает ли незакрытый / невозвратный поток демона python утечки памяти?

#python #multithreading #memory-leaks #kill-process

#python #многопоточность #утечки памяти #kill-process

Вопрос:

Я новичок в python, поэтому большая часть кода взята из Интернета. У меня есть этот код, который я запустил на python:

 def see1():
   while True:
    #Non returning some memory occupying code

see1=threading.Thread(target=see)
see1.daemon=True
see1.start()
  

Итак, мой компьютер постепенно замедлялся даже после закрытия приложения (терминала). Я полагаю, что это вызвано утечкой памяти, которая, вероятно, может выполняться в фоновом режиме?.
Я хочу знать две вещи:

  1. Приведет ли закрытие терминала, в котором запущена программа, к уничтожению и этого потока? Поэтому это не является причиной замедления.
  2. Если закрытие окна терминала не приводит к завершению потока, то как мне его завершить?

Комментарии:

1. Поток демона — это просто тот, который не может поддерживать процесс в рабочем состоянии. Если процесс завершается, поток завершается вместе с ним (поскольку это просто часть процесса). То, убивает ли закрытие терминала процесс, зависит от того, как настроен ваш терминал, и находится вне контроля вашей программы.

2. @chepner Но теоретически поток не так хорош, как сам параллельный процесс? Следовательно, независимо от вызывающего процесса?

3. Нет, совсем нет. Процесс должен активно переключаться между двумя потоками; библиотека потоков заботится об этих деталях, чтобы казалось , что они выполняются параллельно, но на самом деле они просто выполняются одновременно . Для истинного параллелизма требуется два процесса (и операционная система, которая может планировать их на отдельных процессорах).

4. @chepner согласился. В каком случае модуль потоковой обработки в python — это просто высокоскоростной мультиплексор времени? И как мне узнать, закрывает ли терминал процесс тоже? Например, откуда мне знать, как он настроен? Огромное спасибо