Vous devez passer une instance de file d'attente en tant que paramètre puis vous devez .put() votre objet de retour dans la file d'attente. Vous pouvez récupérer la valeur de retour via queue.get() quel que soit l'objet que vous avez mis.
Un échantillon :
queue = Queue.Queue()
thread_ = threading.Thread(
target=target_method,
name="Thread1",
args=[params, queue],
)
thread_.start()
thread_.join()
queue.get()
def target_method(self, params, queue):
"""
Some operations right here
"""
your_return = "Whatever your object is"
queue.put(your_return)
À utiliser pour plusieurs fils :
#Start all threads in thread pool
for thread in pool:
thread.start()
response = queue.get()
thread_results.append(response)
#Kill all threads
for thread in pool:
thread.join()
J'utilise cette mise en œuvre et elle fonctionne très bien pour moi. Je vous souhaite de faire de même.