Python 池中所有线程的等待初始化
我有创建线程池的主线程。在调用函数之前,对池中的每个线程进行初始化。初始化所有线程时如何等待 例如:Python 池中所有线程的等待初始化,python,multiprocessing,threadpool,Python,Multiprocessing,Threadpool,我有创建线程池的主线程。在调用函数之前,对池中的每个线程进行初始化。初始化所有线程时如何等待 例如: from multiprocessing.pool import ThreadPool def main(): # in main thread pool = ThreadPool(processes=5, initializer=init_pool) # >>> here it is I want to wait for initialized
from multiprocessing.pool import ThreadPool
def main():
# in main thread
pool = ThreadPool(processes=5, initializer=init_pool)
# >>> here it is I want to wait for initialized
pool.map_async(do_smth).get()
def init_pool():
# initialized new thread in pool
pass
def do_smth():
# do somethings
pass
如果发生线程异常初始化,则不必导致map_async我将在do_smth()
-函数中实现一个,并跳过初始化池
。但这只适用于Python 3.2
屏障具有预定义数量的参与方,这些参与方必须调用屏障的等待
-功能。当屏障登记正确的呼叫次数时,它会“掉线”,呼叫方会同时回到那里工作
诸如此类:
from multiprocessing.pool import ThreadPool
from threading import Barrier
b = Barrier(parties=5)
def main():
# in main thread
pool = ThreadPool(processes=5)
pool.map_async(do_smth).get()
def do_smth():
#initialize here
b.wait() #call to the barrier
# do somethings
pass
我可以使用多重处理的值来实现这个目的,但它不是很酷,谢谢!尽管我是用Python 2.7编写的,但您的回答帮助了我!我可以像这样模拟障碍物