'''
创建新的进程的第二种方法:
使用类的方式,可以自己定义一个类,继承Process类,每次实例化这个类的时候,
就等于实例化一个进程对象

'''
from multiprocessing import Process
import os, time

# 定义一个类,继承Process类
class Download(Process):
def __init__(self,interval):#这里重载父类__init__方法的原因是对象要传个参数,与下面run方法的执行没有关系
Process.__init__(self)
self.interval=interval#参数所对应的属性

# 重写Process类中的run()方法
def run(self):
# 开启这个进程所要执行的代码
t_start=time.time()
# time.sleep(3) # 阻塞的另一种实现形式
print('开启进程:%s 进行下载操作' % os.getpid())
# if kwargs['device'] == 'iphoneX':
# path = 'http://www.langlang2017.com/iphoneX'
# # print('下载%s对应的%s.%s' % (kwargs['device'], fileName, type))
#print('下载:%s.%s.%s' % (path, fileName, type))
print('子进程(%s)开始执行,父进程为(%s)' % (os.getpid(), os.getppid()))
time.sleep(self.interval)
t_stop=time.time()
print('子进程(%s)执行结束,耗时%f秒'%(os.getpid(),t_stop-t_start))

if __name__ == '__main__':
t_start=time.time()
print('当前进程(%s)' % os.getpid())
p = Download(2)
# 对于一个不包含target属性的Process类,
# 执行start()方法,表示子进程就会运行类中的run()
p.start()
#p.join(10)
time.sleep(10)#区分sleep与join()区别
t_stop=time.time()

print('主进程%s执行结束,耗时%f秒'%(os.getpid(),t_stop-t_start))
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/apple/PycharmProjects/stage4/createProcessSecondMethod/process06.py
当前进程(10593)
开启进程:10594 进行下载操作
子进程(10594)开始执行,父进程为(10593)
子进程(10594)执行结束,耗时2.000305秒
主进程10593执行结束,耗时10.006700秒

Process finished with exit code 0
---------------------
作者:Arthur54271
来源:CSDN
原文:https://blog.csdn.net/zbrj12345/article/details/79743852
版权声明:本文为博主原创文章,转载请附上博文链接!

Python mutilprocess模块之第二种创建进程方法--继承Process类的更多相关文章

  1. “全栈2019”Java多线程第二章:创建多线程之继承Thread类

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  2. python导入模块的两种方式

    第一种 from support import * 这种方式导入后可以直接调用(有命名冲突问题)命名冲突后定义的覆盖前定义的 如果在函数导入前定义 则导入函数覆盖 否则相反 if __name__ = ...

  3. Python导入模块的几种方法

    Python 模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代 ...

  4. Python导入模块的三种形式

    Python导入模块的3中方式: 1.import module_name 这样在程序里就可以通过module_name.metnod_name()的方式访问模块里的函数了 Example: > ...

  5. Python之模块和包的创建与使用

    一.模块的概念 在计算机的开发过程中,随着程序代码越写越多,在一个文件里代码就越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,放在不同的文件里面,这样,每个文件包含的代码就相对 ...

  6. day02 Python 的模块,运算,数据类型以及方法

    初识pyhton的模块: 什么是模块: 我的理解就是实现一个功能的函数,把它封装起来,在你需要使用的时候直接调用即可,我的印象里类似于shell 的单独函数脚本. python 的模块分为标准的和第三 ...

  7. python中常用的九种数据预处理方法分享

    Spyder   Ctrl + 4/5: 块注释/块反注释 本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(St ...

  8. 4月17日 python学习总结 反射、object内置方法、元类

    一.反射 下述四个函数是专门用来操作类与对象属性的,如何操作? 通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China" def ...

  9. python基础学习Day17 面向对象的三大特性之继承、类与对象名称空间小试

    一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组 ...

随机推荐

  1. CODEVS_2144 砝码称重 2 折半搜索+二分查找+哈希

    #include<iostream> #include<algorithm> #include<cstring> #include<map> #incl ...

  2. Linux下使用curl进行http请求(转)

    curl在Linux下默认已经安装,Windows需要自行安装. 下载地址:https://curl.haxx.se/download.html Windows离线版本:链接:http://pan.b ...

  3. TFS2018 获取所有Build变量及变量值

    添加一个Command Line 步骤,Tool设置为 cmd ,并设置参数为 /k set 注意:若在执行时出现如下报错信息,Tool的值改成 cmd.exe --20T02::.0416435Z ...

  4. ActiveMQ消息的延时和定时投递

    ActiveMQ对消息延时和定时投递做了很好的支持,其内部启动Scheduled来对该功能支持,也提供了一个封装的消息类型:org.apache.activemq.ScheduledMessage,只 ...

  5. 机器学习优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)

    SGD: 此处的SGD指mini-batch gradient descent,关于batch gradient descent, stochastic gradient descent, 以及 mi ...

  6. 我理解的ios和android

    近期着手了几个android和ios的项目,如今说下我的几个对他们的理解 从设计上来讲.我觉得android 它更像是个网页,一个页面跳到另外一个页面,两者之间的关联不是非常大,仅仅能传递一些简单的參 ...

  7. redux 及 相关插件 项目实战

    目录结构 +-- app | +-- actions | +-- index.js | +-- components | +-- content.js | +-- footer.js | +-- se ...

  8. Eclipse打包Android项目时用到proguard.cfg后,出现的Warning:can&#39;t find referenced class问题的解决方式

    Warning: can't find superclass or interface Warning: can't find referenced class 这两个问题的解决方法: 1.要把你项目 ...

  9. C#语言 数组

  10. maven插件介绍之maven-jar-plugin

    maven-jar-plugin 插件的maven依赖为: <dependency> <groupId>org.apache.maven.plugins</groupId ...