多进程fork process

import os

os.fork()

os.fork()

创建进程,父进程创建子进程,返回值为子进程id>0,然后子进程再执行os.fork(),返回值为0.

多个进程之间不共享全局变量


while True:

    os.fork()   #fork炸弹


os.fork在Ubuntu上有 但windows没有。

所以采用 from multiprocessing import Process

def test():
    while 1:
        print('-'*8)
        time.sleep(1)

if __name__ == '__main__':
    p = Process(target=test)  # 创建进程,指定目标
    p.start()  # 开始运行
    while 1:
        print('---main---')
        time.sleep(1)

os.fork()创建的进程,主进程不会等待创建的进程。

Process创建的进程,主进程会等待创建的子进程结束后再结束。

p.join() #等待p所标记的进程结束后,程序才会往下走,否则堵塞。

p.join(1)#等待1秒,后继续往下执行。


创建类继承Process

class my_new_process(Process):
    def run(self):
        while True:
            print('----1----')
            time.sleep(1)


if __name__ == '__main__':
    p = my_new_process()
    p.start()
    while True:
        print('---main---')
        time.sleep(1)

创建集成Process的类 来直接实例化类,调用类的start方法,会直接来运行里面的run方法。


猜你喜欢

转载自blog.csdn.net/weixin_42309501/article/details/80866763