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 进程编程速成相关推荐

  1. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

  2. python编写程序-Python 编程速成(推荐)

    Python是一种非常流行的脚本语言,而且功能非常强大,几乎可以做任何事情,比如爬虫.网络工具.科学计算.树莓派.Web开发.游戏等各方面都可以派上用场.同时无论在哪种平台上,都可以用 Python ...

  3. 《转载》Python并发编程之线程池/进程池--concurrent.futures模块

    本文转载自 Python并发编程之线程池/进程池--concurrent.futures模块 一.关于concurrent.futures模块 Python标准库为我们提供了threading和mul ...

  4. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

  5. python并发编程之semaphore(信号量)_浅谈Python并发编程之进程(守护进程、锁、信号量)...

    前言:本博文是对Python并发编程之进程的知识延伸,主要讲解:守护进程.锁.信号量. 友情链接: 一.守护进程(daemon) 1.1 守护进程概念 首先我们都知道:正常情况下,主进程默认等待子进程 ...

  6. python编程-Python 编程速成(推荐)

    Python是一种非常流行的脚本语言,而且功能非常强大,几乎可以做任何事情,比如爬虫.网络工具.科学计算.树莓派.Web开发.游戏等各方面都可以派上用场.同时无论在哪种平台上,都可以用 Python ...

  7. Python并发编程之线程池/进程池

    引言 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/销毁进程或者线程是非常消耗资源的,这个时候我 ...

  8. Python并发编程之进程池

    Python并发编程之进程池 一.进程池简介 二.进程池代码实例 一.进程池简介 可以用Pool类来创建进程池,可以把各种数据处理任务都提交给进程池.进程池提供的功能有点类似于列表解析和功能性编程操作 ...

  9. Python零基础速成班-第9讲-Python面向对象编程(上),对象和类、初始化、继承、重写、多态、类方法、组合

    Python零基础速成班-第9讲-Python面向对象编程(上),对象和类.初始化.继承.重写.多态.类方法.组合 学习目标 修饰器 面向对象编程:对象和类.初始化.继承.重写.多态.类方法.组合 课 ...

最新文章

  1. 如何增加儿童产品中的趣味性?
  2. so文件成品评论【整理】
  3. 数据结构--图(Graph)详解(一)
  4. 查询中国城市公交线路
  5. 使用ActiveMQ和HornetQ通过WebSocket通过STOMP轻松进行消息传递
  6. python分析工具有哪些_常用Python数据分析工具汇总
  7. 生产性企业CO部分月结流程及系统步骤
  8. [转载]什么是 Design Hackathon?
  9. 在Java中的foreach循环中调用remove
  10. 2016-6-3Ajax异步复习
  11. 简谈libxml2库函数的使用
  12. 二分图匹配问题之km算法代码
  13. CSS 中文字体格式
  14. 凯恩斯归来,大堡礁畅游记
  15. 强化学习Reinforcement Learning概念理解篇(一)
  16. Thinking in java生词
  17. 关于儿童踢足球,是否会对长高有不良影响
  18. 2. 【短语、直接短语、句柄】概念、做题步骤
  19. 2023年一月份图形化四级打卡试题
  20. python初学-下载模块后导入失败(windows)

热门文章

  1. php date( ymd_PHP-date(),time()函数的应用
  2. linux 删除文件_Linux删除文件夹命令有哪些
  3. HMM——前向后向算法
  4. 用Itextsharp 组件导出PDF 的文档的方法
  5. MySQL索引设计原则
  6. windows任务计划程序 坑
  7. C++程序设计教程学习(1)-第一部分 编程基础
  8. PHP javascript 值互相引用(不用刷新页面)
  9. Debian下IPv6设定主地址 Set primary IPv6 address under Debian Linux
  10. Eclipse里做JBPM工作流gpd.xml中文乱码问题解决(包括控制台乱码解决)