本文实例讲述了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 php multiprocessing,Python多进程并发(multiprocessing)用法实例详解相关推荐

  1. python的scatter函数_python scatter函数用法实例详解

    这篇文章主要介绍了python scatter函数用法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 函数功能:寻找变量之间的关系. 调用签 ...

  2. python 数据分析模块_Python数据分析pandas模块用法实例详解

    本文实例讲述了Python数据分析pandas模块用法.分享给大家供大家参考,具体如下: pandas pandas10分钟入门,可以查看官网:10 minutes to pandas 也可以查看更复 ...

  3. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  4. python中symbols函数用法_Python基础之函数用法实例详解

    本文以实例形式较为详细的讲述了Python函数的用法,对于初学Python的朋友有不错的借鉴价值.分享给大家供大家参考之用.具体分析如下: 通常来说,Python的函数是由一个新的语句编写,即def, ...

  5. python url解码_对python中url参数编码与解码的实例详解

    一.简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码. 二.关键代码 1.url编码 对字符串编码用urllib.parse包下的quote(string, saf ...

  6. python中label有什么用_对Python中TKinter模块中的Label组件实例详解

    Python2.7.4 OS-W7x86 1. 简介 Label用于在指定的窗口中显示文本和图像.最终呈现出的Label是由背景和前景叠加构成的内容. Label组件定义函数:Label(master ...

  7. Java并发编程最佳实例详解系列

    Java并发编程最佳实例详解系列: Java并发编程(一)线程定义.状态和属性 Java并发编程(一)线程定义.状态和属性 线程是指程序在执行过程中,能够执行程序代码的一个执行单元.在java语言中, ...

  8. mysql数据库select语句用法_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  9. oracle几种例外,Oracle例外用法实例详解

    本文实例讲述了Oracle例外用法.分享给大家供大家参考,具体如下: 一.例外分类 oracle将例外分为预定义例外.非预定义例外和自定义例外三种. 1).预定义例外用于处理常见的oracle错误. ...

  10. c语言pair的用法,C++ pair的用法实例详解

    C++ pair的用法实例详解 1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当 ...

最新文章

  1. android 开启一个定时线程_Android异步、延迟和定时任务的简易用法
  2. PB做的史上最强的矢量图监控软件(什么组态软件与监控软件的核心都源于此原理)...
  3. Oracle cursor_sharing 参数 详解
  4. git reset用法
  5. 计算机培训开场白,面试开场白及自我介绍范文4篇
  6. [react] super()和super(props)有什么区别?
  7. element-UI 弹出组件dialog的遮罩层在弹出层的上面 - 解决篇
  8. 大文件上传 进度条显示(仿CSDN资源上传效果) .
  9. ip申请 web应用_网络协议端口TCP/IP概览
  10. 人工智能产业链深度透析-技术层
  11. 索尼入局电动汽车市场 宣布成立移动出行公司
  12. laravel auth::check 后session失败_01.laravel简介
  13. easyui的tree获取父节点_通过DOM API 查找节点
  14. 证明CLIQUE(团问题)是NP完全
  15. 使用tensorflow神经网络预测房价模型
  16. python毕业论文参考文献格式范例_毕业论文参考文献范例
  17. 客房管理系统前台代码html,中顶酒店客房前台管理系统
  18. 【抖音小程序】抖音小程序避免onClose重复回调 解决广告重复回调
  19. 网页服务器磁盘满了怎么办,远程服务器磁盘满了怎么办
  20. C++使用OPENSSL进行RSA加密,java服务端解密

热门文章

  1. 【linux学习笔记八】常用命令
  2. Hadoop2.6.0学习笔记(八)SPOF解决方案总结
  3. mysql初始化主机名无法解析
  4. centos6.5 bash基础命令2
  5. 25+ 个单色背景的网页设计实例
  6. ***常用的***手段
  7. oracle 数据库启动停止小结
  8. Linux服务器运维安全策略
  9. SpringBoot整合ElasticSearch实现多版本的兼容
  10. Cisco ASR1002-X告警处理