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复制文件代码实现
Dec 23 Python
python3使用tkinter实现ui界面简单实例
Jan 10 Python
Python生成器(Generator)详解
Apr 13 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
Python itertools模块详解
May 09 Python
python2.7实现爬虫网页数据
May 25 Python
详解Python中的正则表达式
Jul 08 Python
基于python实现从尾到头打印链表
Nov 02 Python
Django基于客户端下载文件实现方法
Apr 21 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
python实现简单石头剪刀布游戏
Oct 24 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
在项目中寻找代码的坏命名
2012/07/14 PHP
php上传图片客户端和服务器端实现方法
2015/03/30 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
javascript整除实现代码
2010/11/23 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
JavaScript函数详解
2014/11/17 Javascript
DOM 事件流详解
2015/01/20 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
python用列表生成式写嵌套循环的方法
2018/11/08 Python
django中瀑布流写法实例代码
2019/10/14 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
国际会议邀请函范文
2014/01/16 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
爱牙日活动总结
2014/08/29 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android