多任务编程-进程

微笑、不失礼 提交于 2019-12-04 23:42:35

##进程
import os
import signal
signal.signal(signal.SIGCHLD, signal.SIG_IGN)
#signal防止僵尸进程
# 其他方法:1.父进程内pid,status=os.wait() 2.子进程内创建二级子进程(父退出os._exit(0)/sys.exit('退出'),子变孤儿执行)
pid=os.fork()
if pid==0:
print('子进程')
elif pid>0:
print('父进程')
elif pid<0:
print('创建子进程失败')
>注意
>>* 子进程会复制父进程全部内存空间,从fork下一句开始执行。
>>* 父子进程各自独立运行,运行顺序不一定。
>>* 利用父子进程fork返回值的区别,配合if结构让父子进程执行不同的内容几乎是固定搭配。
>>* 父子进程有各自特有特征比如PID PCB 命令集等。
>>* 父进程fork之前开辟的空间子进程同样拥有,父子进程对各自空间的操作不会相互影响。


from multiprocessing import Process
def function(参数):
pass
p=Process(target=function,args=(参数,))
p.daemon(True) #父进程退出,子进程退出
p.start()
p.join()


from multiprocessing import Pool

def func(a):
pass
p = Pool()
p.apply_async(func, args=('a',))
p.close()
p.join()

 

from multiprocessing import Queue
q = Queue()
q.put()
q.get()
q.close()

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!