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")
示例

相关文章: