python的 进程管理

ernestwang 1 0

进程管理

进程管理: 获取当前进程  multiprocessing.current_process() 获取当前进程及父进程ID os.getpid(), os.getppid() 创建进程: 1:定义一个函数 Def do_something(*arg,**kwargs): Pass 2:固定格式 If __name__==’__main__’: Multiprocessing.process(target=do_somethong,arg=(1,2,3), Kwargs={‘age’:18}, name=’loopprocess’   Target:指定的进程任务,其实就是一个函数 Name:指的是进程的名称 Args:传递给进程函数的位置参数,是一个元组 Kwargs:传递给进程函数的关键字参数,是一个字典 设置子进程随主进程结束而结束,默认为False p.daemon=True 启动进程 p.start() 等待子进程结束 p.join() 手动结束子进程 p.terminate() 进程锁: Def loop (lock) pass 获取锁:lock.acquire() pass 释放锁:lock.release() pass if __name__==’__main__’ 1:创建主线程 If __name__==’__main__’ 创建一个进程锁:lock=multprocessing.lock() P=multprocessing.process(target=loop,args=(lock,),name=’’ Target 等于需要执行的子进程的函数, Args 等于传递的参数。     信号量: 和进程锁相似。 获取信号量 Se.acquire() Pass 释放信号量 Se.release()   创建一个信号量的对象,需要指定上限。 If__name__==’__main__’ Se=mutiprocessing.semphore(3) P=mutiprocessing.process(target=run,args=(‘num’+str(i),se)) Args=(‘num’+str(i),se)) 进程池 1:创建进程池 Pool=multiprocessing.pool(‘进程数’) 2: 循环创建进程,然后添加到进程池中 Pool.apply_async(func=’函数名’args=(i,), callback=callback) 关闭进程池后,就不能再添加进程了。 Pool.close() 等待进程池结束 Pool.join()

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~