У меня есть следующий код:
import multiprocessing
import os
def info(title):
print("~"*50)
print(title)
print('module name:', __name__)
print('parent process:', os.getppid())
print('process id:', os.getpid())
def foo():
info("foo()")
print("bar")
if __name__ == '__main__':
while True:
p = multiprocessing.Process(target=foo)
p.start()
p.join()
time.sleep(1)
Это работает как шарм за то, что я хочу сделать. Когда я наблюдаю, как выполняются сценарии, значения PID очень высоки.
Пример вывода:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo()
module name: __main__
parent process: 1104
process id: 4805
bar
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo()
module name: __main__
parent process: 1104
process id: 4806
bar
Тем не менее, PID, видимый через top
, не меняется:
1104 x3 20 0 60060 18252 8560 S 0.7 1.9 0:20.55 │ └─ python3 clockMatrix7219.py
1109 x3 20 0 60060 18252 8560 S 0.0 1.9 0:00.00 │ ├─ python3 clockMatrix7219.py
1108 x3 20 0 60060 18252 8560 S 0.0 1.9 0:00.00 │ ├─ python3 clockMatrix7219.py
1107 x3 20 0 60060 18252 8560 S 0.0 1.9 0:00.00 │ ├─ python3 clockMatrix7219.py
1106 x3 20 0 60060 18252 8560 S 0.0 1.9 0:00.00 │ └─ python3 clockMatrix7219.py
clockMatrix7219.py
- имя сценария.
Мой вопрос: может ли это быть проблематичным в будущем? Будет ли предел? Потому что скрипт предназначен для запуска в любое время. Кроме того, каждый процесс выполняется только в течение доли секунды и завершается после.
Большое спасибо!