标签:进入 alt 方式 数据 内存 完成 har 技术分享 name
一:开启进程的两种方式:
方式一(图1):通过multiprocessing模块,导入类Process来开启进程,通过类Process实例化得到对象,在Windows系统
上,开启子进程的操作必须放到 if __name__ == ‘__main__‘的子代码中,然后调用对象下的start方法,开启一个
子进程,从而实现并发效果,如图1:
方式二(图2):通过自定义一个类的方式来实现,但是必须使用里面的run方法,然后调用start方法的时候就会自动调
用run,从而实现并发效果,如图2:
二:进程对象的join方法(图3和图4):
join方法主要的作用就是让主进程在原地等待,等待子进程运行完毕,不会影响子进程的执行,最后再执行主进程。如图3:
第二种写法,如图4:
三:进程之间内存空间互相隔离(图5):通过定义一个全局变量等于一个值,然后在子进程中把全局变量改成另外一个值,
等到子进程运行完毕后,再运行主进程,结果得到的还是全局变量的那个值,证明
了进程之间内存空间是互相隔离的。如图5:
四:进程对象其它相关的属性或方法:
1:进程pid:每一个进程在操作系统内都有一个唯一的id号,称之为pid,主要用于区分进程。
如何查看pid:通过multiprocessing模块下的current_process,把current_process加括号得到
一个对象,这个对象下面就有一个属性pid,这样就能看到当前进程的id号了。如图6:
还有一种方式:通过os模块,os模块下有一个os.getpid,通过这种方式也可以查看,如图7:
2:进程ppid:可以理解为是查看子进程的主进程,如图8;那么,主进程的上一级进程是什么,如果是
在pycharm中运行,那么这个上一级进程就是pycharm。如图8:
五:僵尸进程与孤儿进程:
1:僵尸进程:所有的子进程都会进入僵尸进程状态,僵尸进程主要是让子进程运行完毕后,其内部的如pid之类的
这种状态信息仍然能够保留下来以供主进程来使用查看。
2:孤儿进程:一个主进程运行结束了,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿
进程会被init进程所收养,并由init进程对它们完成回收工作。
六:守护进程daemon(图9):本质就是一个‘子进程’,该‘子进程’的生命周期 <= 被守护进程的生命周期 如图9:
七:互斥锁mutex(图10):原理:将并发变成串行,牺牲效率,保证数据安全。 以模拟抢票为例,如图10:
标签:进入 alt 方式 数据 内存 完成 har 技术分享 name
原文地址:https://www.cnblogs.com/duanxiangyang/p/9593246.html