最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python多进程并发(multiprocessing)用法实例详解

来源:动视网 责编:小采 时间:2020-11-27 14:33:54
文档

Python多进程并发(multiprocessing)用法实例详解

Python多进程并发(multiprocessing)用法实例详解:本文实例讲述了Python多进程并发(multiprocessing)用法。分享给大家供大家参考。具体分析如下: 由于Python设计的限制(我说的是咱们常用的CPython)。最多只能用满1个CPU核心。 Python提供了非常好用的多进程包multiprocessing,你只需要定义一
推荐度:
导读Python多进程并发(multiprocessing)用法实例详解:本文实例讲述了Python多进程并发(multiprocessing)用法。分享给大家供大家参考。具体分析如下: 由于Python设计的限制(我说的是咱们常用的CPython)。最多只能用满1个CPU核心。 Python提供了非常好用的多进程包multiprocessing,你只需要定义一


本文实例讲述了Python多进程并发(multiprocessing)用法。分享给大家供大家参考。具体分析如下:

由于Python设计的限制(我说的是咱们常用的CPython)。最多只能用满1个CPU核心。
Python提供了非常好用的多进程包multiprocessing,你只需要定义一个函数,Python会替你完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。

1、新建单一进程

如果我们新建少量进程,可以如下:

import multiprocessing
import time
def func(msg):
 for i in xrange(3):
 print msg
 time.sleep(1)
if __name__ == "__main__":
 p = multiprocessing.Process(target=func, args=("hello", ))
 p.start()
 p.join()
 print "Sub-process done."

2、使用进程池

是的,你没有看错,不是线程池。它可以让你跑满多核CPU,而且使用方法非常简单。

注意要用apply_async,如果落下async,就变成阻塞版本了。

processes=4是最多并发进程数量。

import multiprocessing
import time
def func(msg):
 for i in xrange(3):
 print msg
 time.sleep(1)
if __name__ == "__main__":
 pool = multiprocessing.Pool(processes=4)
 for i in xrange(10):
 msg = "hello %d" %(i)
 pool.apply_async(func, (msg, ))
 pool.close()
 pool.join()
 print "Sub-process(es) done."

3、使用Pool,并需要关注结果

更多的时候,我们不仅需要多进程执行,还需要关注每个进程的执行结果,如下:

import multiprocessing
import time
def func(msg):
 for i in xrange(3):
 print msg
 time.sleep(1)
 return "done " + msg
if __name__ == "__main__":
 pool = multiprocessing.Pool(processes=4)
 result = []
 for i in xrange(10):
 msg = "hello %d" %(i)
 result.append(pool.apply_async(func, (msg, )))
 pool.close()
 pool.join()
 for res in result:
 print res.get()
 print "Sub-process(es) done."

希望本文所述对大家的Python程序设计有所帮助。

文档

Python多进程并发(multiprocessing)用法实例详解

Python多进程并发(multiprocessing)用法实例详解:本文实例讲述了Python多进程并发(multiprocessing)用法。分享给大家供大家参考。具体分析如下: 由于Python设计的限制(我说的是咱们常用的CPython)。最多只能用满1个CPU核心。 Python提供了非常好用的多进程包multiprocessing,你只需要定义一
推荐度:
标签: python 并发 多进程
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top