Решение
Преобразовать process1.py, process2.py и process3.py в функции
main.py должно быть:
from multiprocessing import Process
from process1 import process1
from process2 import process2
from process3 import process3
if __name__ == "__main__":
p1 = Process(target=process1)
p2 = Process(target=process2)
p3 = Process(target=process3)
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
и process1.py должны быть:
def process1():
while True:
print("I'm process 1")
, а остальные (process2 и process3) тоже должны быть превращены в функции
Пояснение
Теперь я понял, что происходит
, когда вы импортируете файл .py, python выполняет его, поэтому, когда вы впервые
import process1, process2, process3
python начинает выполнение первого процесса, поэтому ваш вывод не поступает из строки 7 в
p1.start()
, а из строки 2 при импорте, поэтому превращение их в функции приводит к тому, что де-импорт просто определяет process1 вместо его выполнения