> Да, код могу не из потока выполнять в основном процессе. Да что ты такое несешь, придурок? А в процессе по-твоему потока не существует?
После окончания процесс убивается вместе с потоком (наверно).
Наоборот после окончания (не демон-) потоков процесс умирает
Процесс живет пока жив хотя бы один из его потоков
Кстати. А демон потоки это на уровне питона решено или в pthread есть?
На уровне питона. Я не смотрел как оно реализовано, но вангую просто остановкой машины, выполняющей байткод
Я имел ввиду на примере того же print("Hello world"), там нечему дальше работать
Соответственно если у тебя демон поток подвис где-нибудь в нативном коде есть ненулевая вероятность что он не сдохнет
вообще есть чему.
то что ты написал строчку кода далеко не значит что в твоей программе выполняется лишь она.
Не знал, спасибо
кроме инициализации и финализации интерпретатора, есть еще модуль site который загружается по-умолчанию и тащит за собой другие модули.
Чтобы убить все процессы и потоки что вышли из кода нужны дополнительные действия?
можешь ради интереса запустить python -v -c 'print("Hello world")' и посмотреть что происходит
А можно нормально сформулировать ?
Кстати недавно рядом обсуждали. А зачем он нужен в реальном коде?
Сайт
Чтобы программа и все процессы что она создала вместе с потоками перестали работать и не нагружали систему нужно писать что-то в конце кода?
как минимум он добавляет в sys.path системную и пользовательские директории site-packages
$ python -Sc 'import sys; print(sys.path)' ['', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload'] $ python -c 'import sys; print(sys.path)' ['', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/home/username/.local/lib/python3.10/site-packages', '/usr/lib/python3.10/site-packages']
Те процессы, которая породил родительский процесс если не должны пережить его существование очевидно нужно за собой подчищать.
можешь привести пример подобных процессов?
Если их убить, то потоки что из процесса создал сами завершатся?
кого "их" ? что значит "из процесса создал"?
а потоки разве можно создавать? ты можешь перенести процесс в определенный поток, но никак не создашь поток, исправьте если ошибаюсь
потоки существуют в рамках процесса, убивая процесс ты убиваешь все потоки внутри него.
ШТА? pthread_create что по-твоему делает?
Если запустить функцию через Process, а внутри функции запустить Thread выйдет что из другого процесса поток или из основного. Я походу данную часть не понял и усложняю все
допустим, у процессора есть 8 ядер и 16 потоков, возможно что-ли как-то дополнительные создать? это не риторический вопрос, если что
1. какой еще Process? 2. что значит "выйдет поток"?
казалось бы при чем тут потоки CPU
"Потоки процессора", как и ядра - это физические транзисторы, которые он может задействовать.
1. multiprocessing.Process(), 2. Внутри функции которую я запустил через multiprocessing.Process() я запущу поток, то данный поток будет из основного процесса или из того что я запустил в самом коде
Поток очевидно создается в том процессе, в котором создается поток.
Не существует понятия "основной процесс". Основной процесс это разве что init или PID 1
я имел в виду, что с помощью кода вряд ли получится дополнительные транзисторы прибабахать
Если не сложно, то когда код запускаю как называется данный процесс?
речь в контексте обсуждения про потоки выполнения кода, потоки ОС.
никак не называется.
Спасибо
а было бы круто!
ну строго говоря в виртуалке ты можешь эмулировать любую топологию процессора при желании
100500 ядер можно при физических, допустим, 8?
код, который ты "запускаешь", запускает другой процесс. является ли тот процесс, который порождает твой процесс "основным" ?
технически ничего не мешает, с оговорками.
Думаю да, ведь от него все работает если считать только программу, а не всю систему
ну многопоточка в реальном времени
есть такие штуки, как ос реального времени. Собственно они ограничены как раз физическими характеристиками железа. ну то есть, если есть 8 ядер, то и 8 параллельно потоков максимум. Брокеры (планировщики) обычно там очень тесно на аппаратке и завязаны.
Не забываем про жесткое и мягкое реальное время. Но это действительно не в тему было
не, мне серьезно интересно как поднять виртуалку с параметрами, которые выше физических! Вдруг он знает...
Файл подкачки и виртуальная память:)
Без этого ты это изобретешь
Обсуждают сегодня