python multiprocessing 两种创建方式

作用:提供一个API来管理进程。

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)

你可能感兴趣的:(process)