python全栈脱产第34天------开启进程的两种方式join方法进程对象其他相关的属性和方法僵尸进程孤儿进程守护进程互斥锁

Posted zhouyi0316

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python全栈脱产第34天------开启进程的两种方式join方法进程对象其他相关的属性和方法僵尸进程孤儿进程守护进程互斥锁相关的知识,希望对你有一定的参考价值。

一、开启进程的两种方式

  方式一:

from multiprocessing import Process
import time

def task(name):
print(‘%s is running‘ %name)
time.sleep(3)
print(‘%s is done‘ %name)

# 在windows系统上,开启子进程的操作必须放到if __name__ == ‘__main__‘的子代码中
if __name__ == ‘__main__‘:
p=Process(target=task,args=(‘egon‘,)) #Process(target=task,kwargs={‘name‘:‘egon‘})
p.start() # 只是向操作系统发送了一个开启子进程的信号
print(‘主‘)
  方式二:
from multiprocessing import Process
import time

class Myprocess(Process):
def __init__(self,name):
super().__init__()
self.name=name

def run(self):
print(‘%s is running‘ %self.name)
time.sleep(3)
print(‘%s is done‘ %self.name)

# 在windows系统上,开启子进程的操作必须放到if __name__ == ‘__main__‘的子代码中
if __name__ == ‘__main__‘:
p=Myprocess(‘egon‘)
p.start() # 只是向操作系统发送了一个开启子进程的信号
print(‘主‘)
二、join方法
  让主进程在原地等待,等待子进程运行完毕,不会影响子进程的执行
三、进程对象相关属性
  进程pid:每一个进程在操作系统内都有一个唯一的id号,称之为pid
四、僵尸进程和孤儿进程
  僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
  孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
五、守护进程:本质就是一个‘子进程‘,该‘子进程‘的生命周期<=被守护进程的生命周期
六、互斥锁
  用mutex.acquire()方法实现并发下的串行的效果








































以上是关于python全栈脱产第34天------开启进程的两种方式join方法进程对象其他相关的属性和方法僵尸进程孤儿进程守护进程互斥锁的主要内容,如果未能解决你的问题,请参考以下文章

python全栈脱产第4天

python全栈脱产第17天

python全栈脱产第12天

python全栈脱产第18天

python全栈脱产第11天

python全程脱产第31天------TCP协议socket