并发编程---Process对象的其他属性或方法
Process对象的其他属性或方法
#join方法 from multiprocessing import Process import time,os ''' 需求:让主进程等着子进程运行完毕,才能基于子进程运行的结果,进而执行。 ''' def task(): print('%s is running,parent id is <%s>' %(os.getpid(),os.getppid())) time.sleep(3) print('%s is done,parent id is <%s>' %(os.getpid(),os.getppid())) if __name__ == '__main__': p = Process(target=task,) p.start() p.join()# 主进程会在着等,等的过程中一直运行子进程 print('主',os.getpid(),os.getppid()) print(p.pid) ###并发### from multiprocessing import Process import time,os ''' 需求:让主进程等着子进程运行完毕,才能基于子进程运行的结果,进而执行。 ''' def task(name,n): print('%s is running' %name) time.sleep(n) if __name__ == '__main__': start=time.time() # 判断三个子进程是并发的,还是串行 p1 = Process(target=task,args=('子进程1',5)) p2 = Process(target=task,args=('子进程2',4)) p3 = Process(target=task,args=('子进程3',3)) p_l=[p1,p2,p3] # p1.start() # p2.start() # p3.start() for p in p_l: p.start() # p1.join() # p2.join() # p3.join() for p in p_l: p.join() # p.start只是发一个信号,操作系统可能接收其他程序发的信号,不回去考虑谁先发送的信号,是统筹管理的 print('主',(time.time()-start)) ###串行### from multiprocessing import Process import time,os ''' 需求:让主进程等着子进程运行完毕,才能基于子进程运行的结果,进而执行。 ''' def task(name,n): print('%s is running' %name) time.sleep(n) if __name__ == '__main__': start=time.time() # 判断三个子进程是并发的,还是串发 p1 = Process(target=task,args=('子进程1',5)) p2 = Process(target=task,args=('子进程2',4)) p3 = Process(target=task,args=('子进程3',3)) p1.start() p1.join() p2.start() p2.join() p3.start() p3.join() # p.start只是发一个信号,操作系统可能接收其他程序发的信号,不回去考虑谁先发送的信号,是统筹管理的 print('主',(time.time()-start)) ###了解### from multiprocessing import Process import time,os def task(): print('%s is running,parent id is <%s>' %(os.getpid(),os.getppid())) time.sleep(3) print('%s is done,parent id is <%s>' %(os.getpid(),os.getppid())) if __name__ == '__main__': # p = Process(target=task,) # p.start() # print(p.is_alive()) # 打印结果:False # p.join() # print('主',os.getpid(),os.getppid()) # print(p.pid) # 打印进程id # print(p.is_alive()) # 查看进程是死是活 打印结果:False p = Process(target=task,name='sub--Process') p.start() p.terminate() # 干死进程,但是只是给操作系统发一个信号,系统需要反应一段时间 time.sleep(3) print(p.is_alive()) # 打印结果:False print('主') print(p.name) # 打印进程名称