Python进程Multiprocessing模块原理解析


Posted in Python onFebruary 28, 2020

先看看下面的几个方法:

  • star() 方法启动进程,
  • join() 方法实现进程间的同步,等待所有进程退出。
  • close() 用来阻止多余的进程涌入进程池 Pool 造成进程阻塞。

参数:

target 是函数名字,需要调用的函数

args 函数需要的参数,以 tuple 的形式传入

用法:

multiprocessing.Process(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)

写一个的例子:

from multiprocessing import Pool
import os,time


def pr(str):
  print("The " + str + " is %s" %(os.getpid()))
  time.sleep(1)
  print("The " + str + " is close")


if __name__ == "__main__":

  print('-------------------------------')
  print("the current pid: "+ str(os.getpid()))
  # 默认为自己电脑的核数
  p = Pool(2)
  for i in range(5):
    p.apply_async(pr,args=('xdxd',))
  p.close()
  p.join()
  print("----------close-----------------")

通过结果可以看出,是2个进程同时启动,同时启动的进程数与pool中设置的数量和自己电脑的核数有关

结果:

-------------------------------
the current pid: 9562
The xdxd is 9563
The xdxd is 9564
The xdxd is close
The xdxd is close
The xdxd is 9563
The xdxd is 9564
The xdxd is close
The xdxd is close
The xdxd is 9563
The xdxd is close
----------close-----------------

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实现堆排序算法代码
Jun 05 Python
Python中lambda的用法及其与def的区别解析
Jul 28 Python
Python入门篇之编程习惯与特点
Oct 17 Python
python re模块findall()函数实例解析
Jan 19 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
查看keras的默认backend实现方式
Jun 19 Python
零基础学python应该从哪里入手
Aug 11 Python
浅谈对python中if、elif、else的误解
Aug 20 Python
python 实现多维数组(array)排序
Feb 28 #Python
python对数组进行排序,并输出排序后对应的索引值方式
Feb 28 #Python
Python使用Socket实现简单聊天程序
Feb 28 #Python
在python3中使用shuffle函数要注意的地方
Feb 28 #Python
Python对称的二叉树多种思路实现方法
Feb 28 #Python
pycharm如何实现跨目录调用文件
Feb 28 #Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 #Python
You might like
php中数据的批量导入(csv文件)
2006/10/09 PHP
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
js表头排序实现方法
2015/01/16 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
深入理解Javascript中的this关键字
2015/03/27 Python
Python Matplotlib库入门指南
2015/05/18 Python
Python3 模块、包调用&路径详解
2017/10/25 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
课程设计心得体会
2013/12/28 职场文书
幼儿教师国培感言
2014/02/19 职场文书
股东协议书
2014/04/14 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
婚内房产协议书范本
2014/10/02 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
MySQL学习之基础命令实操总结
2022/03/19 MySQL
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL