python的 进程管理

    SEO基础 wuya 169次浏览 已收录 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()


    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明python的 进程管理
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址