4月24号

今天老师讲了好多理论,首先讲了一个程序运行多次就是多个进程,

from multiprocessing import Process
import time
import os
def task():
print('%s:父进程%s'%(os.getpid(),os.getppid()))
time.sleep(3)


if __name__=='__main__':
p=Process(target=task,name='123')
p.start()
print(p.pid)
print(os.getppid())


导入multiprocessing模块,进程与进程之间是物理隔离的

可以用函数或者类来当做子进程。windows下开启子进程要放到if__name__='__main__'下面
因为运行子进程时又会导入程序,不在后面会无限循环

process是类
p=Process(target=task,args=('egon',))以元组的形式传参或字典)kwargs={’name’='egon'}
p.start()是向操作系统发请求,操作系统会申请内存空间,然后把父进程的数据拷贝给子进程作为子进程初始化
已类的方式产生进程一定要在类下有run方法p.start()就是在调用run
p.join()就是让父类一直等,还会收儿子尸体,在这里会造成阻塞
p.terminate()是向操作系统发请求杀死子进程,什么时候杀死是操作系统说了算
p.is_alive是判断子进程是否或者
os.getpid是得到子进程PID
os.getPPid是得到主进程pid

















猜你喜欢

转载自www.cnblogs.com/zhaoweihang/p/8930483.html