Falha na fila de multiprocessamento do Python
Eu crio 100 processos filhos
proc_list = [
Process(target = simulator, args=(result_queue,))
for i in xrange(100)]
e comece-os
for proc in proc_list: proc.start()
Cada processo coloca na result_queue (instância de multiprocessamento.Queue) 10000 tuplas depois de fazer algum processamento.
def simulate(alg_instance, image_ids, gamma, results,
simulations, sim_semaphore):
(rs, qs, t_us) = alg_instance.simulate_multiple(image_ids, gamma,
simulations)
all_tuples = zip(rs, qs, t_us)
for result in all_tuples:
results.put(result)
sim_semaphore.release()
Eu deveria estar (?) Recebendo 1000000 tuplas na fila, mas depois de várias execuções eu recebo esses tamanhos (amostra): 14912 19563 12952 13524 7487 18350 15986 11928 14281 14282 7317
Alguma sugestão?