一 multiprocessing模块介绍

python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。

Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。

multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,>提供了Process、Queue、Pipe、Lock等组件。

需要再次强调的一点是:与线程不同,进程没有任何共享状态,进程修改的数据,改动仅限于该进程内。

三 Process类的使用

创建并开启子进程的方式一

Process 传字典 或者args 传参数也可以

start()开启子进程

from multiprocessing import Process

import time

def task(name):

print("%s is running" % name)

time.sleep(3)

print("%s is done" % name)

if __name__ == "__main__":

# 实例化

# args 为函数传参数

t = Process(target=task, args=("子进程1",))

# 开启子进程

t.start() # 仅仅只是给操作系统发送一个信号 与平常print没有什么区别

print("主")

'''

子进程1 is running

子进程1 is done

'''

'''

看得出是先打印主 再开启子进程1的

'''

用关键字参数kwargs传参

from multiprocessing import Process

import time

def task(name):

print("%s is running" % name)

time.sleep(3)

print("%s is done" % name)

if __name__ == "__main__":

# 实例化

# 也可以用kwargs 为函数传参数 以字典方式

t = Process(target=task, kwargs={'name': '子进程1'})

t.start()

'''

子进程1 is running

子进程1 is done

'''

应用程序是开不了子进程的 p.start() 给操作系统发送信号 至于操作系统什么时候开进程,开多长时间应用程序是控制不了。

p.start() 给操作系统发送信号 告诉操作系统给个开个子进程吧  操作系统收到后 申请内存空间 把父进程的地址空间数据 拷贝给子进程

作为子进程的初始状态

父进程不知道操作系统会

默认是先 开启主进程执行,主进程执行完,再开启 子进程执行,再到子进程执行结束。

创建并开启子进程的方式二

自己写一个子类去继承他 不用默认的类

方法一定要写run

from multiprocessing import Process

import time

# 自己写一个子类去继承他 不用默认的类

# Process的类传进去

class MyProcess(Process):

# 重写了init方法 父类就被覆盖掉

def __init__(self, name):

# 重用父类 因为父类还有很多有用功能,继承父类

super().__init__()

self.name = name

# 方法一定要写run

def run(self):

print("%s is running" % self.name)

time.sleep(3)

print("%s is done" % self.name)

if __name__ == "__main__":

# 实例化 直接用自己自定义的类开子进程

# args 为函数传参数

p = MyProcess("子进程1")

# 开启子进程

p.start() # 仅仅只是给操作系统发送一个信号 与平常print没有什么区别

# p.start() 本质是调用run方法

print("主")

来源:http://www.icode9.com/content-3-250451.html

python如何关闭multiprocess_python 开启进程两种方法 multiprocessing模块 介绍相关推荐

  1. 打开和关闭mysql服务的两种方法

    方法一:使用cmd命令 首先,打开我们的dos窗口,开始-运行-输入cmd. 如上图所示,输入net start mysql 回车即可启动,输入net stop mysql 回车即可关闭. 方法二:选 ...

  2. Python数据分析:异常值检验的两种方法 -- Z 分数 上下分位点(放入自写库,一行代码快速实现)

    本文已在公众号 " 数据分析与商业实践 " 首发.关注一下~,更多商业数据分析案例源码等你来撩.后台回复 "异常值" ,即可获取本文的案例示范与包含详细注释的源 ...

  3. python hist直方图拟合曲线_详解用Python为直方图绘制拟合曲线的两种方法

    直方图是用于展示数据的分组分布状态的一种图形,用矩形的宽度和高度表示频数分布,通过直方图,用户可以很直观的看出数据分布的形状.中心位置以及数据的离散程度等. 在python中一般采用matplotli ...

  4. python直方图拟合曲线_用Python为直方图绘制拟合曲线的两种方法

    直方图是用于展示数据的分组分布状态的一种图形,用矩形的宽度和高度表示频数分布,通过直方图,用户可以很直观的看出数据分布的形状.中心位置以及数据的离散程度等. 在python中一般采用matplotli ...

  5. Python识别二维码的两种方法(cv2)

    在学习Python处理二维码的过程中,我们看到的大多是"用python生成酷炫二维码"."用Python制作动图二维码"之类的文章.而关于使用Python批量识 ...

  6. Python识别二维码的两种方法

    人生苦短,快学Python!大家好,我是朱小五 最近在搜寻资料时,发现了一则10年前的新闻:二维码将成线上线下关键入口.从今天的移动互联网来看,支付收款码/健康码等等与我们息息相关,二维码确实成为了我 ...

  7. win10彻底关闭windows defender的两种方法

    很多小伙伴的电脑一般都会安装第三方杀毒软件,如360.金山等,不过Win10系统还自带了Windows Defender杀毒软件,在打开一些包含EXE文件夹的时候,Windows Defender会明 ...

  8. Windows 10彻底关闭windows defender的两种方法

    多小伙伴的电脑一般都会安装第三方杀毒软件,如360.金山等,不过Win10系统还自带了Windows Defender杀毒软件,在打开一些包含EXE文件夹的时候,Windows Defender会明显 ...

  9. python杨辉三角形10行_python杨辉三角形两种方法

    1 / \ 1 1 / \ / \ 1 2 1 / \ / \ / \ 1 3 3 1 / \ / \ / \ / \ 1 4 6 4 1 / \ / \ / \ / \ / \ 1 5 10 10 ...

最新文章

  1. NameError: name 'go' is not defined
  2. 35.页面置换算法有哪些?
  3. No module named MySQLdb (django)
  4. 光模块、连接器、光纤的常用知识
  5. 微软工程师测试题——未来
  6. java后端面试笔记-自用
  7. C#LeetCode刷题之#155-最小栈(Min Stack)
  8. 求数组三项之和最接近某个目标数字
  9. 你试过一个人旅游吗?去了哪里?
  10. 专科python应届生工资多少-应届生自学Python两个月,为什么找不到工作?
  11. 谁来帮帮只想救人的医生呢? | 凌云时刻
  12. 最新高级流量卡官网源码附教程
  13. g120宏的说明书_西门子变频器G120操作说明书
  14. 一位acm过来人的心得
  15. Excel2021单元格怎么做下拉菜单
  16. 关于Android 4.4(华为)调用系统相机问题
  17. 真正厉害的人,是怎么分析问题的?
  18. 从事热爱的工作和积极乐观
  19. c语言个人所得税的打印思路,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  20. 练习4-11 统计素数并求和(素数的函数)

热门文章

  1. redis主从复制_技术干货分享:一文了解Redis主从复制
  2. 机器学习hierarchical clustering_厉害了!几行代码搞定机器学习模型
  3. 计算机自动化技术要学什么,【经验分享】PLC学习的5个阶段,自动化工程师看看你属于哪个阶段?...
  4. oracle同库复制schema,使用impdp复制oracle的schema数据迁移 | 学步园
  5. 虚拟专题:知识图谱 | 流程工业控制系统的知识图谱构建
  6. 虚拟专题:知识图谱 | 基于网络防御知识图谱的0day攻击路径预测方法
  7. 作者:程学旗,中国科学院计算技术研究所研究员、所长助理、副总工程师。...
  8. 【Python】Pandas高效加载JSON文件
  9. try_module_get和module_put【转】
  10. Mysql内存表主从复制【译】