Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 池中所有线程的等待初始化_Python_Multiprocessing_Threadpool - Fatal编程技术网

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编写的,但您的回答帮助了我!我可以像这样模拟障碍物