码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-09-05 17:43:00      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:print   串行   运行   影响   windows   proc   孤儿进程   tip   本质   

一、开启进程的两种方式

  方式一:

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方法、进程对象其他相关的属性和方法、僵尸进程、孤儿进程、守护进程、互斥锁

标签:print   串行   运行   影响   windows   proc   孤儿进程   tip   本质   

原文地址:https://www.cnblogs.com/zhouyi0316/p/9592334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!