现在,我有一个以下函数 test()
def test():
f1(par) # extremely time consuming
f2() # f2 must be executed after f1()
f1() 的时间成本非常高。 f2() 必须在 f1() 之后执行。我想使用多处理来加速 f1(),所以我修改了 test():
import multiprocessing as mp
from multiprocessing import Pool
def test():
pool = Pool(processes=mp.cpu_count())
res = [pool.apply_async(f1, (p)) for p in list_pars]
#
# ??? pause or what?
#
f2() # f2 must be executed after f1()
f1() 速度加快,但 f2() 在 f1() 完成之前执行。如何让程序稍等一下?完成f1()后应开始执行f2()。我该如何修改代码?
谢谢。
您是否尝试过使用某种线程同步? here和 here
我会写pool.join()
我是一名优秀的程序员,十分优秀!