#_author:来童星
#date:2019/12/17
# 使用Process子类创建进程
from multiprocessing import Process
import time
import os
#继承Process类
class SubProcess(Process):
#由于Process类本身也有__init__初始化方法,这个子类相当于重写了父类的这个方法
def __init__(self,inteval,name=''):# 注意name要有默认值
Process.__init__(self)
# super(SubProcess, self).__init__()
self.inteval=inteval
if name:
self.name=name
#重写了Process类的run()方法
def run(self):
print('子进程(%s)开始执行,父进程为(%s)' % (os.getpid(), os.getppid()))
t_start = time.time()
time.sleep(self.i)
t_end = time.time()
print("子进程(%s)执行时间为'%0.2f'秒" % (os.getpgid(), t_end - t_start)) if __name__=='__main__':
print('-------父进程开始执行-------')
print('父进程PID:%s'%os.getppid())
p1=SubProcess(inteval=1,name='mrsoft')# 实例化进程p1
p2=SubProcess(inteval=2)# 实例化进程p2
p1.start()
p2.start()
# 同时父进程仍然往下执行,如果p2进程还在执行,将会返回True
print("p1.is_alive=%s"%p1.is_alive())
print("p2.is_alive=%s"%p2.is_alive())
#输出p1,p2进程的别名和pid
print("p1.name=%s"%p1.name)
print('p1.pid=%s'%p1.pid)
print("p2.name=%s"%p2.name)
print('p2.pid=%s'%p2.pid)
print('-------等待子进程-------')
p1.join()
p2.join()
print('-------父进程执行结束-------')
运行结果:
-------父进程开始执行-------
父进程PID:5580
p1.is_alive=True
p2.is_alive=True
p1.name=mrsoft
p1.pid=4044
p2.name=SubProcess-2
p2.pid=10196
-------等待子进程-------
-------父进程执行结束-------

使用Process子类创建进程的更多相关文章

  1. Python多进程库multiprocessing创建进程以及进程池Pool类的使用

    问题起因最近要将一个文本分割成好几个topic,每个topic设计一个regressor,各regressor是相互独立的,最后汇总所有topic的regressor得到总得预测结果.没错!类似bag ...

  2. linux创建进程fork的方法步骤

    fork创建进程 函数原型如下 #include// 必须引入头文件,使用fork函数的时候,必须包含这个头文件,否则,系统找不到fork函数 pid_t fork(void); //void代表没有 ...

  3. android,JNI创建进程,使用fork()

    long add(long x,long y) { pid_t fpid; //fpid表示fork函数返回的值 int count=0; fpid=fork(); if (fpid < 0) ...

  4. Java中如何创建进程(转)

    在Java中,可以通过两种方式来创建进程,总共涉及到5个主要的类. 第一种方式是通过Runtime.exec()方法来创建一个进程,第二种方法是通过ProcessBuilder的start方法来创建进 ...

  5. LINUX编程学习笔记(十四) 创建进程与 父子进程内存空间

    1什么是进程:进程是一个执行中的程序 执行的程序: 代码->资源->CPU 进程有很多数据维护:进程状态/进程属性 所有进程属性采用的一个树形结构体维护 ps  -a//所有进程 ps - ...

  6. inux的进程-进程的概念和fork创建进程

    一.  什么是进程? 初学者,可能认为程序或者一段代码就是一个进程.其实这样说是很不全面的,进程简单的说就是一个个条件. 1.需要一个代码 2.需要运行这个代码环境和资源 从下面的一段代码,我们来分析 ...

  7. Java并发编程:如何创建进程?

    转载自:http://www.cnblogs.com/dolphin0520/p/3913517.html 在前面一篇文章中已经讲述了在进程和线程的由来,今天就来讲一下在Java中如何创建线程,让线程 ...

  8. Java 多线程详解(二)------如何创建进程和线程

    Java 多线程详解(一)------概念的引入:http://www.cnblogs.com/ysocean/p/6882988.html 在上一篇博客中,我们已经介绍了并发和并行的区别,以及进程和 ...

  9. C语言 进程控制---创建进程fork()函数

    #include "sys/types.h" #include "stdio.h" #include "stdlib.h" #include ...

随机推荐

  1. vuex之module的使用

    一.module的作用 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象.当应用变得非常复杂时,store 对象就有可能变得相当臃肿. 为了解决以上问题,Vuex 允许我们将 store 分 ...

  2. 2、Python 基础类型 -- String 字符串类型

    字符串常用的方法: 1.分割:string.split(str="", num=string.count(str))   以 str 为分隔符切片 string,如果 num 有指 ...

  3. hdu 3374 最大最小表示法 next

    题目大意: 就是求一个串的最大最小表示法的开始下标,然后求有多少个做大最小表示,输出格式为 最小表示下标 它的个数 最大表示下标 它的个数 基本思路: 最小最大表示法模板题,然后求一下循环节,很容易知 ...

  4. leetcode-160周赛-5239-循环码排列

    题目描述: 参考格雷编码: class Solution: def circularPermutation(self, n: int, start: int) -> List[int]: res ...

  5. git - Mac生成SSH key

    步骤1.检查是否已经存在SSH Key 打开电脑终端,输入以下命令: ls -al ~/.ssh 会出现两种情况 步骤2. 生成/设置SSH Key 继续上一步可能出现的情况 (1)情况一: 终端出现 ...

  6. delphi 设备函数GetDeviceCaps函数

    {说明:以下内容来源于网络,修改多处错误所得 2019.10.04 } GetDeviceCaps 函数功能:该函数检索指定设备的设备指定信息.该函数经常用在操作打印机等设备中.函数原型:int Ge ...

  7. Vue学习笔记【7】——Vue指令之v-model和双向数据绑定

    v-model是唯一可以实现双向数据绑定的vue指令 单向数据绑定:修改内存中的数据,页面上同步更改.v-bind <!-- v-bind 只能实现数据的单向绑定,从 M 自动绑定到 V, 无法 ...

  8. SpringDataRedis依赖

    <dependencies>        <dependency>            <groupId>junit</groupId>       ...

  9. vue 实现分页

    1 新建 pager.js 文件 /** * [pagination 分页组件] * @param {Number} total [数据总条数] * @param {Number} display [ ...

  10. Dart编程实例 算术操作符

    Dart编程实例 算术操作符 void main() { var num1 = 101; var num2 = 2; var res = 0; res = num1+num2; print(" ...