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)

posted @ 2012-08-23 16:17  congbo  阅读(1580)  评论(0编辑  收藏  举报