python 进程编程速成
python具有thread多线程库,但多线程并不是真正的多线程,不能充分利用多核CPU资源。
在大多数情况下,python可以使用multiprocessing多进程库,可以轻松完成从单进程到并发执行的转换。
multiprocessing库支持子进程、通信和共享数据、执行不同形式的同步,提供Process、Queue、Pipe、Lock等类对象。
一、Process类对象,创建进程
在multiprocessing中,每一个进程都用一个Process类来表示。
Process([group [, target [, name [, args [, kwargs]]]]])参数:
group分组,实际上不使用
target表示调用对象,你可以传入方法的名字
name是别名,相当于给这个进程取一个名字
args表示被调用对象的位置参数元组,比如target是函数a,他有两个参数m,n,那么args就传入(m, n)即可
kwargs表示调用对象的字典
示例1:
import multiprocessingdef process(num):print 'Process:', numif __name__ == '__main__':for i in range(5):p = multiprocessing.Process(target=process, args=(i,))p.start()
备注:
multiprocessing.Process():创建进程
target:传入函数名(方法)
args:传入函数或方法的位置参数元组
P.start()方法用于启动进程
示例2:
import multiprocessing
import timedef process(num):time.sleep(num)print 'Process:', numif __name__ == '__main__':for i in range(5):p = multiprocessing.Process(target=process, args=(i,))p.start()print('CPU number:' + str(multiprocessing.cpu_count()))for p in multiprocessing.active_children():print('Child process name: ' + p.name + ' id: ' + str(p.pid))print('Process Ended')
备注:
m.cpu_count():获取当前机器的CPU核心数量
m.active_children():目前所运行的进程对象列表
转载于:https://www.cnblogs.com/xiaofeiIDO/p/7655513.html
python 进程编程速成相关推荐
- python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)
今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...
- python编写程序-Python 编程速成(推荐)
Python是一种非常流行的脚本语言,而且功能非常强大,几乎可以做任何事情,比如爬虫.网络工具.科学计算.树莓派.Web开发.游戏等各方面都可以派上用场.同时无论在哪种平台上,都可以用 Python ...
- 《转载》Python并发编程之线程池/进程池--concurrent.futures模块
本文转载自 Python并发编程之线程池/进程池--concurrent.futures模块 一.关于concurrent.futures模块 Python标准库为我们提供了threading和mul ...
- python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...
python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...
- python并发编程之semaphore(信号量)_浅谈Python并发编程之进程(守护进程、锁、信号量)...
前言:本博文是对Python并发编程之进程的知识延伸,主要讲解:守护进程.锁.信号量. 友情链接: 一.守护进程(daemon) 1.1 守护进程概念 首先我们都知道:正常情况下,主进程默认等待子进程 ...
- python编程-Python 编程速成(推荐)
Python是一种非常流行的脚本语言,而且功能非常强大,几乎可以做任何事情,比如爬虫.网络工具.科学计算.树莓派.Web开发.游戏等各方面都可以派上用场.同时无论在哪种平台上,都可以用 Python ...
- Python并发编程之线程池/进程池
引言 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/销毁进程或者线程是非常消耗资源的,这个时候我 ...
- Python并发编程之进程池
Python并发编程之进程池 一.进程池简介 二.进程池代码实例 一.进程池简介 可以用Pool类来创建进程池,可以把各种数据处理任务都提交给进程池.进程池提供的功能有点类似于列表解析和功能性编程操作 ...
- Python零基础速成班-第9讲-Python面向对象编程(上),对象和类、初始化、继承、重写、多态、类方法、组合
Python零基础速成班-第9讲-Python面向对象编程(上),对象和类.初始化.继承.重写.多态.类方法.组合 学习目标 修饰器 面向对象编程:对象和类.初始化.继承.重写.多态.类方法.组合 课 ...
最新文章
- 如何增加儿童产品中的趣味性?
- so文件成品评论【整理】
- 数据结构--图(Graph)详解(一)
- 查询中国城市公交线路
- 使用ActiveMQ和HornetQ通过WebSocket通过STOMP轻松进行消息传递
- python分析工具有哪些_常用Python数据分析工具汇总
- 生产性企业CO部分月结流程及系统步骤
- [转载]什么是 Design Hackathon?
- 在Java中的foreach循环中调用remove
- 2016-6-3Ajax异步复习
- 简谈libxml2库函数的使用
- 二分图匹配问题之km算法代码
- CSS 中文字体格式
- 凯恩斯归来,大堡礁畅游记
- 强化学习Reinforcement Learning概念理解篇(一)
- Thinking in java生词
- 关于儿童踢足球,是否会对长高有不良影响
- 2. 【短语、直接短语、句柄】概念、做题步骤
- 2023年一月份图形化四级打卡试题
- python初学-下载模块后导入失败(windows)
热门文章
- php date( ymd_PHP-date(),time()函数的应用
- linux 删除文件_Linux删除文件夹命令有哪些
- HMM——前向后向算法
- 用Itextsharp 组件导出PDF 的文档的方法
- MySQL索引设计原则
- windows任务计划程序 坑
- C++程序设计教程学习(1)-第一部分 编程基础
- PHP javascript 值互相引用(不用刷新页面)
- Debian下IPv6设定主地址 Set primary IPv6 address under Debian Linux
- Eclipse里做JBPM工作流gpd.xml中文乱码问题解决(包括控制台乱码解决)