Когда я использую следующий код, результат пула всегда возвращает таймаут, есть ли что-то логически неправильное, что я делаю?Многопроцессорный пул внутри Время обработки процесса
from multiprocessing import Pool, Process, cpu_count
def add(num):
return num+1
def add_wrap(num):
new_num = ppool.apply_async(add, [num])
print new_num.get(timeout=3)
ppool = Pool(processes=cpu_count())
test = Process(target=add_wrap, args=(5,)).start()
Я знаю this bug, и подумал бы, что она была бы зафиксирована в питон 2.6.4?
Я думал по тем же линиям, но по-прежнему приводит к исключению таймаута. Похоже, что Pool() никогда не должен был вызываться изнутри Process(), хотя я бы подумал, что это была бы выполнимая операция. – NeonNinja
Я не получаю исключение таймаута с python 2.6.4 в Ubuntu Karmic. Какую версию операционной системы/Python вы используете? –
Я плохо тестировал ваше решение с помощью python 2.6, который терпит неудачу, отлично работает на 2.6.4, + принят – NeonNinja