如何在python3多处理中保持没有“主线程”的进程?

时间:2018-05-06 21:35:54

标签: python-3.x python-multiprocessing

python中的多处理启动一个新进程。

在这个新进程中,我创建了2个新线程,并且在启动新进程的“主线程”中没有执行任何其他操作,似乎该进程已经消失。

示例:

new_process = multiprocessing.Process(target=new_proc_main, name=yyy)
new_process.start()

def new_proc_main():
    thread1 = threading.Thread(target=xxxx, name=thread1)
    thread1.start()
    thread2 = threading.Thread(target=xxxx, name=thread2)
    thread2.start()

如何在线程1和1之间保持新进程的活动。 2跑?

1 个答案:

答案 0 :(得分:0)

我写了一个测试程序。这是MacOS上的Python 3.6.2

import multiprocessing
import time

def new_main():
    import threading
    my_thread = threading.Thread(target=dummy_main)
    my_thread.start()
    my_thread.join()

def dummy_main():
    while True:
        print("thread running")
        time.sleep(1)

print("start process")
p = multiprocessing.Process(target=new_main)
p.start()

关键是我必须拥有my_thread.join()。 如果我没有,程序会立即退出。