170 похожих чатов

Запускать процесс из процесса (не основного) или из потока безопасно?

56 ответов

19 просмотров

> Да, код могу не из потока выполнять в основном процессе. Да что ты такое несешь, придурок? А в процессе по-твоему потока не существует?

Влад-Piton Автор вопроса

После окончания процесс убивается вместе с потоком (наверно).

Наоборот после окончания (не демон-) потоков процесс умирает

Влад Piton
После окончания процесс убивается вместе с потоком...

Процесс живет пока жив хотя бы один из его потоков

Alex
Процесс живет пока жив хотя бы один из его потоков

Кстати. А демон потоки это на уровне питона решено или в pthread есть?

Tishka17
Кстати. А демон потоки это на уровне питона решено...

На уровне питона. Я не смотрел как оно реализовано, но вангую просто остановкой машины, выполняющей байткод

Влад-Piton Автор вопроса
Tishka17
Наоборот после окончания (не демон-) потоков проце...

Я имел ввиду на примере того же print("Hello world"), там нечему дальше работать

Tishka17
Кстати. А демон потоки это на уровне питона решено...

Соответственно если у тебя демон поток подвис где-нибудь в нативном коде есть ненулевая вероятность что он не сдохнет

Влад Piton
Я имел ввиду на примере того же print("Hello world...

то что ты написал строчку кода далеко не значит что в твоей программе выполняется лишь она.

Влад-Piton Автор вопроса

Не знал, спасибо

кроме инициализации и финализации интерпретатора, есть еще модуль site который загружается по-умолчанию и тащит за собой другие модули.

Влад-Piton Автор вопроса
Alex
кроме инициализации и финализации интерпретатора, ...

Чтобы убить все процессы и потоки что вышли из кода нужны дополнительные действия?

Влад Piton
Не знал, спасибо

можешь ради интереса запустить python -v -c 'print("Hello world")' и посмотреть что происходит

Alex
можешь ради интереса запустить python -v -c 'pri...

Кстати недавно рядом обсуждали. А зачем он нужен в реальном коде?

Влад-Piton Автор вопроса
Alex
А можно нормально сформулировать ?

Чтобы программа и все процессы что она создала вместе с потоками перестали работать и не нагружали систему нужно писать что-то в конце кода?

Tishka17
Сайт

как минимум он добавляет в sys.path системную и пользовательские директории site-packages

Tishka17
Сайт

$ 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']

Те процессы, которая породил родительский процесс если не должны пережить его существование очевидно нужно за собой подчищать.

Влад Piton
Чтобы программа и все процессы что она создала вме...

можешь привести пример подобных процессов?

Влад-Piton Автор вопроса
Alex
Те процессы, которая породил родительский процесс ...

Если их убить, то потоки что из процесса создал сами завершатся?

Влад Piton
Если их убить, то потоки что из процесса создал са...

кого "их" ? что значит "из процесса создал"?

Влад Piton
Если их убить, то потоки что из процесса создал са...

а потоки разве можно создавать? ты можешь перенести процесс в определенный поток, но никак не создашь поток, исправьте если ошибаюсь

Влад Piton
Если их убить, то потоки что из процесса создал са...

потоки существуют в рамках процесса, убивая процесс ты убиваешь все потоки внутри него.

Влад-Piton Автор вопроса
Alex
кого "их" ? что значит "из процесса создал"?

Если запустить функцию через Process, а внутри функции запустить Thread выйдет что из другого процесса поток или из основного. Я походу данную часть не понял и усложняю все

Alex
ШТА? pthread_create что по-твоему делает?

допустим, у процессора есть 8 ядер и 16 потоков, возможно что-ли как-то дополнительные создать? это не риторический вопрос, если что

Влад Piton
Если запустить функцию через Process, а внутри фун...

1. какой еще Process? 2. что значит "выйдет поток"?

Xname Yname
допустим, у процессора есть 8 ядер и 16 потоков, в...

"Потоки процессора", как и ядра - это физические транзисторы, которые он может задействовать.

Влад-Piton Автор вопроса
Alex
1. какой еще Process? 2. что значит "выйдет поток...

1. multiprocessing.Process(), 2. Внутри функции которую я запустил через multiprocessing.Process() я запущу поток, то данный поток будет из основного процесса или из того что я запустил в самом коде

Влад Piton
Если запустить функцию через Process, а внутри фун...

Поток очевидно создается в том процессе, в котором создается поток.

Влад Piton
1. multiprocessing.Process(), 2. Внутри функции ко...

Не существует понятия "основной процесс". Основной процесс это разве что init или PID 1

Tishka17
"Потоки процессора", как и ядра - это физические т...

я имел в виду, что с помощью кода вряд ли получится дополнительные транзисторы прибабахать

Влад-Piton Автор вопроса

Если не сложно, то когда код запускаю как называется данный процесс?

Xname Yname
я имел в виду, что с помощью кода вряд ли получитс...

речь в контексте обсуждения про потоки выполнения кода, потоки ОС.

Влад-Piton Автор вопроса
Tishka17
"Потоки процессора", как и ядра - это физические т...

ну строго говоря в виртуалке ты можешь эмулировать любую топологию процессора при желании

Влад Piton
Спасибо

код, который ты "запускаешь", запускает другой процесс. является ли тот процесс, который порождает твой процесс "основным" ?

Влад-Piton Автор вопроса
Alex
код, который ты "запускаешь", запускает другой про...

Думаю да, ведь от него все работает если считать только программу, а не всю систему

ну многопоточка в реальном времени

Alex
яннп

есть такие штуки, как ос реального времени. Собственно они ограничены как раз физическими характеристиками железа. ну то есть, если есть 8 ядер, то и 8 параллельно потоков максимум. Брокеры (планировщики) обычно там очень тесно на аппаратке и завязаны.

𝖁𝖔𝖑𝖆𝖓𝖉 (Евгений Ушаков)
есть такие штуки, как ос реального времени. Собств...

Не забываем про жесткое и мягкое реальное время. Но это действительно не в тему было

Tishka17
Не забываем про жесткое и мягкое реальное время. Н...

не, мне серьезно интересно как поднять виртуалку с параметрами, которые выше физических! Вдруг он знает...

Файл подкачки и виртуальная память:)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта