进程
单进程
import time
#唱歌
def sing():
for i in range(3):
print("唱歌")
time.sleep(0.5)
#跳舞
def dance():
for i in range(4):
print("跳舞")
time.sleep(0.5)
if __name__ =='__main__':
sing()
dance()
多进程
分三步:
1、导入进程包
2、使用进程类创建进程对象
3、使用进程对象启动进程执行指定任务
#导入进程包
import multiprocessing
import time
#唱歌
def sing(num):
print("唱歌进程的pid:", os.getpid())
for i in range(num):
print("唱歌")
time.sleep(0.5)
#跳舞
def dance(num):
print("跳舞进程的pid:", os.getpid())
for i in range(num):
print("跳舞")
time.sleep(0.5)
if __name__ == '__main__':
# 使用进程类创建进程对象
# target=要调用的函数名;
#两种传参方式:args是元组方式传参(元组的顺序就是函数参数的顺序),kwargs是字典方式传参(key是函数的参数)
ProcessSing=multiprocessing.Process(target=sing,args=(3,))
ProcessDance=multiprocessing.Process(target=dance,kwargs={"num":2})
# 使用进程对象启动进程执行指定任务
ProcessSing.start()
ProcessDance.start()
## 获取进程编号
1、获取当前进程编号
2、获取当前父进程编号
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210121200917219.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dlbWluaV9maXJl,size_16,color_FFFFFF,t_70#pic_center)
默认主进程会等待所有子进程执行结束后再结束
设置守护主进程后,主进程结束,所有子进程直接销毁,不再执行子进程剩余代码
ProcessDance=multiprocessing.Process(target=dance,kwargs={"num":2})
#设置守护主进程
ProcessDance.daemon = True