python进程池和进程锁(python的线程锁)

网友投稿 262 2022-06-19


1.进程锁:

from multiprocessing import Process, Lock

def f(l, i):

  l.acquire()

  print('hello world', i)

  l.release()

if __name__ == '__main__':

  lock = Lock()

for num in range(10):

  Process(target=f, args=(lock, num)).start()

2.进程池:

from multiprocessing import Pool

import time

def Foo(i):

  time.sleep(2)

  print(i+100)

#允许进程池里同时放入5个进程

pool = Pool(5)

for i in range(10):

  #并行执行

  pool.apply_async(func=Foo,args=(i,))

pool.close()

pool.join() #进程池中进程执行完毕后再关闭,如果注释,那么程序直接关闭。

print('end')

3.进程池与进程锁:

from multiprocessing import Pool, Manager

import time

def Foo(i, l):

  l.acquire()

  time.sleep(2)

  print(i+100)

  l.release()

lock = Manager().Lock()

#允许进程池里同时放入5个进程

pool = Pool(5)

for i in range(10):

  #并行执行

  pool.apply_async(func=Foo,args=(i, lock, ))

pool.close()

pool.join() #进程池中进程执行完毕后再关闭,如果注释,那么程序直接关闭。

print('end')


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python知识点(python知识点汇总)
下一篇:Pycharm快捷键(pycharm快捷键大全图)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~