python多进程基础教程:Python多进程并发(multiprocessing)用法实例详解
2020-02-17 05:26
645 查看
本文实例讲述了Python多进程并发(multiprocessing)用法。分享给大家供大家参考。具体分析如下:
由于Python设计的限制(我说的是咱们常用的CPython)。最多只能用满1个CPU核心。
Python提供了非常好用的多进程包multiprocessing,你只需要定义一个函数,Python会替你完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。
1、新建单一进程
如果我们新建少量进程,可以如下:
本文实例讲述了Python多进程并发(multiprocessing)用法。分享给大家供大家参考。具体分析如下:
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学习裙:913~~066&&&266里面有学习资料,学习软件
- 点赞
- 收藏
- 分享
- 4000 文章举报
相关文章推荐
- python并发编程之多进程、多线程、异步和协程详解
- 详解python多线程、锁、event事件机制的简单使用
- 对Python多线程读写文件加锁的实例详解
- Python控制多进程与多线程并发数总结
- python多线程编程:浅谈PyQt5中异步刷新UI和Python多线程总结
- python主线程捕获子线程的方法
- python主线程与子线程的结束顺序实例解析
- python 多线程中子线程和主线程相互通信方法
- python线程池(threadpool)模块使用笔记详解
- 在Python中通过threading模块定义和调用线程的方法
- Python线程池模块ThreadPoolExecutor用法分析
- python程序中的线程操作 concurrent模块使用详解
- Python 多线程,threading模块,创建子线程的两种方式示例
- Python2.7自学笔记 Day1
- Python2.7学习笔记-Day3
- Python2.7学习笔记-Day4
- 基于Python的人脸自动戴口罩系统
- 【华为云技术分享】Python 中的异常和错误
- Python+OpenCV实现实时眼动追踪
- Win10+vs2015+python3.5+CUDA9.0的caffe库编译(一)