进程初始

进程(Process)是计算机的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.是对于运行的程序的抽象,从实际角度看,是一种数据结构,目的在于清晰的刻画动态系统的内在规律,有效的管理和调度进入系统主存储器运行的程序.

注意: 同一个程序执行两次,就会在操作系统中出现两个进程,所以我们可以同时运行一个软件,分别做不同的事也不会混乱.

进程调度:

1.先来先服务调度算法
2.短作业优先调度算法
3.时间片轮转法
4.多级反馈队列

进程的三大状态分别是:就绪状态(除CPU以外所有的资源都分配到),运行状态(正在运行),阻塞状态(放弃CPU执行,将进程放入内存中)

进程的创建于结束:

1.系统初始化
2.一个进程正在运行过程中开启了子进程
3.用户的交互请求,而创建一个新进程
4.一个处理作业的初始化

1.正常退出
2.出错退出
3.严重出错
4.被其他进程杀死

创建子进程就需要介绍multiproces模块,借助此模块可以完成进程的创建

注意:
1.需要使用关键字的方式来指定参数
2.args指定的为传给target函数的位置参数,是一种元组形式,必须有逗号
3.target表示调用对象,即子进程要执行的任务
4.args表示调用对象的位置参数元组,args = (1,2,"egon")
5.kwargs表示调用对象字典,kwargs = {"name":"egon","age":18}
6.name是子进程的名字

import time
from multiprocessing import Process

def f(name):
    print('hello', name)
    print('我是子进程')

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    time.sleep(1)
    print('执行主进程的内容了') 
import time
from multiprocessing import Process

def f(name):
    print('hello', name)
    time.sleep(1)
    print('我是子进程')


if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    #p.join()
    print('我是父进程')
import os
from multiprocessing import Process

def f(x):
    print('子进程id :',os.getpid(),'父进程id :',os.getppid())
    return x*x

if __name__ == '__main__':
    print('主进程id :', os.getpid())
    p_lst = []
    for i in range(5):
        p = Process(target=f, args=(i,))
        p.start()

进程中的方法:
p.start()开始创建一个进程
p.join()让父进程在子进程执行完后再继续执行(同步)
p.is_alive()判断进程是否还在
p.terminate()杀死一个进程
os.getpid()获取当前进程的pid
os.getppid()获取父进程的pid
p.daemon = True,将p设为守护进程

守护进程:
1.守护进程会在主程序代码执行结束后就终止
2.守护进程内无法在开启子进程,否则抛出异常
注意:进程之间是独立的,主进程代码运行结束,守护进程随即终止

原文地址:https://www.cnblogs.com/smile568968/p/9506884.html