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方法。