Python mutilprocess模块之第二种创建进程方法--继承Process类
'''
创建新的进程的第二种方法:
使用类的方式,可以自己定义一个类,继承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类的更多相关文章
- “全栈2019”Java多线程第二章:创建多线程之继承Thread类
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- python导入模块的两种方式
第一种 from support import * 这种方式导入后可以直接调用(有命名冲突问题)命名冲突后定义的覆盖前定义的 如果在函数导入前定义 则导入函数覆盖 否则相反 if __name__ = ...
- Python导入模块的几种方法
Python 模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代 ...
- Python导入模块的三种形式
Python导入模块的3中方式: 1.import module_name 这样在程序里就可以通过module_name.metnod_name()的方式访问模块里的函数了 Example: > ...
- Python之模块和包的创建与使用
一.模块的概念 在计算机的开发过程中,随着程序代码越写越多,在一个文件里代码就越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,放在不同的文件里面,这样,每个文件包含的代码就相对 ...
- day02 Python 的模块,运算,数据类型以及方法
初识pyhton的模块: 什么是模块: 我的理解就是实现一个功能的函数,把它封装起来,在你需要使用的时候直接调用即可,我的印象里类似于shell 的单独函数脚本. python 的模块分为标准的和第三 ...
- python中常用的九种数据预处理方法分享
Spyder Ctrl + 4/5: 块注释/块反注释 本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(St ...
- 4月17日 python学习总结 反射、object内置方法、元类
一.反射 下述四个函数是专门用来操作类与对象属性的,如何操作? 通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China" def ...
- python基础学习Day17 面向对象的三大特性之继承、类与对象名称空间小试
一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组 ...
随机推荐
- Hadoop三种模的安装配置过程
JDK+Hadoop安装配置.单机模式配置 以下操作在SecureCRT里面完成 1.关闭防火墙 firewall-cmd --state 显示防火墙状态running/not running sys ...
- foobar2000播放APE格式音乐的解决办法
要使foobar2000能播放APE格式的音乐需要安装Monkey's Audio Decoder的插件.操作如下: 1.登录官方插件列表,找到Monkey's Audio Decoder插件 官方插 ...
- Spring基于Setter函数的依赖注入(DI)
以下内容引用自http://wiki.jikexueyuan.com/project/spring/dependency-injection/spring-setter-based-dependenc ...
- linux 文件属性、权限、所有人、所属组
Linux命令行模式下,文件还是需要通过ls -l来查看 可以通过ll查看长文件,会有如下类型显示drwxr-xr-x 2 root root 4096 Nov 10 2010 conf 总共有7 ...
- python异常捕获异常堆栈输出
python异常捕获异常堆栈输出 学习了:https://blog.csdn.net/chris_grass/article/details/77927902 import traceback def ...
- python—networkx:依据图的权重绘图
首先输入边和边的权重,随后画出节点位置.依据权重大小划分实边和虚边 #coding:utf-8 #!/usr/bin/env python """ An example ...
- EBS OAF开发中怎样实现功能页签(Global Tab)
EBS OAF开发中怎样实现功能页签(Global Tab) (版权声明.本人原创或者翻译的文章如需转载.如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 功能页签的实现不须要不论什么编码 ...
- C#总结复习5(需要进一步复习)
第十五章 接口 1.接口: C++中允许多继承没有接口的概念.而java与C#中有,因为C#中 是单继承多接口. 所谓的接口,其实和抽象类.方法相似.都只有一个空方法.其本身不可以为基类,但是允许被其 ...
- java开始到熟悉63-65
本次内容:java常用类 1.包装类 package array; public class wrapperclass { public static void main(String[] args) ...
- C#压缩或解压(rar和zip文件)
/// <summary> /// 解压RAR和ZIP文件(需存在Winrar.exe(只要自己电脑上可以解压或压缩文件就存在Winrar.exe)) /// </summary&g ...