加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python进程池和进程锁

发布时间:2020-12-20 10:11:47 所属栏目:Python 来源:网络整理
导读: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 multipr

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,lock,))

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

print('end')

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读