У меня есть python2.5 и multiprocessoring (получить от http://code.google.com/p/python-multiprocessing/)python2.5 многопроцессорная бассейн
Этот простой код (получить из документации), работает очень странно, время от времени, иногда это хорошо, но иногда бросить тайм-аут ex или повесить мою Windows (Vista), только сброс помогает :) Почему это может случиться?
from multiprocessing import Pool
def f(x):
print "fc",x
return x*x
pool = Pool(processes=4)
if __name__ == '__main__':
result = pool.apply_async(f, (10,)) # evaluate "f(10)" asynchronously
print result.get(timeout=3) # prints "100" unless your computer is *very* slow
Я боялся снова начать это :), но он работает! thanx) действительно тянуть создавало снова и снова, и это зависает. – Evg
@nikow: Почему процессы порождались бесконечно? Я могу видеть 4 начальных детей, каждый из которых создает новый пул из 4 детей при импорте программы, но я не вижу, как они будут запускать основной код и называть 'f' для каждого из своих детей ... – EOL
@EOL: Я подозреваю что в каждом дочернем модуле выполняется код модуля. Каждый раз, когда создается новый пул, появляются 4 новых ребенка. У меня это случилось на моей машине и увидел очень большое количество процессов Python до того, как машина замерла. – nikow