multiprocessing是python的多进程管理包,和threading.Thread类似。直接从侧面用subprocesses替换线程使用GIL的方式,由于这一点,multiprocessing模块可以让程序员在给定的机器上充分的利用CPU。
在multiprocessing中,通过创建Process对象生成进程,然后调用它的start()方法
1 from multiprocessing import Process 2 3 def f(name): 4 print('hello', name) 5 6 if __name__ == '__main__': 7 p = Process(target=f, args=('bob',)) 8 p.start() 9 p.join()
和线程的方法都差不多
daemon:
daemon = True 不等待子线程完事就返回
join:
join(timeout=3) 等待线程3秒,超时后继续执行代码
1 #-*- coding:utf-8 -*- 2 from multiprocessing import Process 3 import time 4 def f(name): 5 time.sleep(2) 6 print('hello', name) 7 8 if __name__ == '__main__': 9 p = Process(target=f, args=('p',)) 10 #默认Flase 等待子线程执行完毕,TRUE 不等待子线程完事 11 #p.daemon = True 12 p.start() 13 p1 = Process(target=f, args=('p1',)) 14 p1.start() 15 16 #等待3秒超时,超时过后才能继续执行 17 p1.join(timeout=3) 18 19 print("end")