进程初始

Posted smile568968

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程初始相关的知识,希望对你有一定的参考价值。

进程(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.守护进程内无法在开启子进程,否则抛出异常
注意:进程之间是独立的,主进程代码运行结束,守护进程随即终止


























以上是关于进程初始的主要内容,如果未能解决你的问题,请参考以下文章

Jekyll 偏移代码片段高亮的初始行

java 简单的代码片段,展示如何将javaagent附加到运行JVM进程

代码片段:Shell脚本实现重复执行和多进程

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

如何在使用cardview的片段中初始化gridlayoutmanager?

我想在每次选择底部导航项时初始化片段