Вот сценарий:
class Finder:
def __foo(self, item):
sm = Filter(item)
sm.do_stuff()
return sm
def filter(self):
pool = ThreadPool(20)
results = pool.map(self.__foo, [data...])
pool.close()
pool.join()
return results
class Filter:
def do_stuff(self):
pool = ThreadPool(20)
results = pool.map(self.__more_stuff, [more_data...])
pool.close()
pool.join()
return results
def __more_stuff(self, item):
for x in range(0, 1000):
self.info.append(x * 10)
def get_info(self,):
return self.info
Наконец я звоню:
x = Finder()
data = x.filter()
for y inf data:
do_something_with_data <-- Here I get the main problem!
- - Проблема - -
Есть лиспособ подождать, пока все потоки внутри классов «Filter» закончатся, прежде чем закрывать и присоединять потоки в классе «Finder»? Когда я пытаюсь добраться до информации, хранящейся в списке 'info', я получаю сообщение об ошибке, поскольку иногда процессы внутри класса Filter еще не завершены