温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

进程锁进程池

发布时间:2020-07-13 17:10:08 来源:网络 阅读:298 作者:leiwenbin627 栏目:编程语言

多进程锁
from multiprocessing import Process, Lock

def f(l, i):
    l.acquire()
   
try:
       
print('hello world', i)
   
finally:
        l.release()

if __name__ == '__main__':
    lock = Lock()

   
for num in range(100):
        Process(
target=f, args=(lock, num)).start()

 

 
多进程池
from  multiprocessing import Process, Pool
import time,os

def Foo(i):
    time.sleep(
2)
   
print("in process:",os.getpid())
   
return i + 100 #返回给callbackBar

def Bar(arg):
   
print('-->exec done:', arg,os.getpid())


if __name__=="__main__":
    pool=Pool(
processes=5) #允许进程池里同时放入5个进程
   
print("主进程:",os.getpid())
   
for i in range(10):#callback主进程回调 子进程每执行完一个func=Foo, args=(i,),主进程在回调一次Bar
       
pool.apply_async(func=Foo, args=(i,), callback=Bar)#异步执行 并行
        #pool.apply(func=Foo, args=(i,))#
同步执行 串行 不支持callback

   
print('end')
    pool.close()
    pool.join()
#进程池中进程执行完毕后再关闭,如果注释,那么程序直接关闭。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI