当前位置: Python基础教程 > 16-多任务-多进程 > 阅读正文

python的process类

2021.7.5.   706 次   864字

多进程,是多任务的另一种方式,python的multiprocess模块是实现多线程的模块,Process类是关键类

进程的概念

进程,是程序的一次执行过程,是操作系统资源分配的最小单位。

对于windows系统,可以在任务管理器中查看当前运行的所有进程。linux一般使用ps命令查看

当程序加载到内存开始,到从内存中释放,是进程的生命周期。

程序,是一个静态概念,指的是编写好的代码,保存在硬盘上,而进程是动态的,存在内存中。

一个程序,可以对应一个或多个进程,例如同时运行多个qq,多个进程之间可能有父子关系。使用multiprocess创建的多进程就存在父子关系,但父进程可以先死亡,子进程不会被杀死。(注意线程是不可以的)

进程与线程之间,也是一对多的关系。一个进程可以只有一个线程,也可以有多个线程,线程是资源调度(cpu)的最小单位。

多进程实例

导入multiprocess模块,使用Process类创建一个进程,调用start方法启动该进程

多进程与多线程代码很相似,参数指定一个方法,或继承process类

import multiprocessing
import time


def test1():
    while True:
        print("test1------" + str(1))
        time.sleep(1)


def test2():
    while True:
        print("test2---" + str(2))
        time.sleep(1)


def main():
    t1 = multiprocessing.Process(target=test1, )
    t2 = multiprocessing.Process(target=test2, )

    t1.start()
    t2.start()

    while True:
        print("main--" + str(3))
        time.sleep(1)


if __name__ == "__main__":
    main()

杀死其中一个进程,其他进程不会受影响,杀死父进程后,子进程变成孤儿进程,会被操作系统托管而不被终止。

除了线程,进程,还有协程,在后续的章节中会了解到。

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群