python multiprocessing 两种创建方式

来源:互联网 发布:mac 通信检测声音变小 编辑:程序博客网 时间:2024/06/01 16:29

multiprocessing模块包含一个API,它基于threading API可以在多个进程间划分工作。有些情况下,multiprocessing可以作为临时替换,取代threading来利用多个CPU内核,避免Python全局解释锁带来的计算瓶颈。

 

类似python threading 两种创建方式,python multiprocess 也有两种创建方式:

1、调用函数

要创建第二个进程,最简单的方法就是用一个目标函数实例化一个Process对象,并调用start()让它开始工作。

复制代码
 1 import multiprocessing 2   3 def worker(num): 4     print 'Worker:', num 5     return 6   7 if __name__ == '__main__': 8     jobs = [] 9     for i in range(5):10         p = multiprocessing.Process(target=worker, args=(i,))11         jobs.append(p)12         p.start()
复制代码

 不同于threading,multiprocessing的目标函数可以是其他模块中定义的函数。

 

2、派生进程

要在一个单独的进程中开始工作,尽管最简单的方法是使用Process并传入一个目标函数,不过也可以使用一个定制子类。

复制代码
 1 import multiprocessing 2  3 class Worker(multiprocessing.Process): 4  5     def run(self): 6         print 'In %s' % self.name 7         return 8  9 if __name__ == '__main__':10     jobs = []11     for i in range(5):12         p = Worker()13         jobs.append(p)14         p.start()15     for j in jobs:16         j.join()
复制代码

 

参考:

《Python 标准库》 10.4.9 派生进程(p435)

原创粉丝点击