Я хочу создать много процессов, каждый процесс проходит 5 секунд позже, чем в предыдущем процессе, а именно, интервал времени между каждым процессом начинается 5 секунд, так что: пробег процесс 1 подождать 5 секунд процесс хода 2 подождите 5 секунд процесс запуска подождать 5 секунд .....как извлечь процесс от процесса питон пула
как:
for i in range(10):
p = multiprocessing.Process(target=func)
p.start()
sleep(5)
#after all child process exit
do_something()
, но я хочу назвать do_something() после того, как весь процесс выхода я не знаю, как сделать синхронизацию здесь
с питона бассейна libary, я могу иметь
pool = multiprocessing.Pool(processes=4)
for i in xrange(500):
pool.apply_async(func, i)
pool.close()
pool.join()
do_something()
, но в этом Кстати, 4 процессов будут работать одновременно, я не могу решить, интервал времени между процессами, является возможностью создания пула процессов, а затем принести каждый процесс, что-то вроде
pool = multiprocessing.Pool(processes=4)
for i in xrange(500):
process = pool.fetch_one()
process(func, i)
time.sleep(5)
pool.close()
pool.join()
do_something()
Есть ли такая библиотека или фрагменты исходного кода, которые удовлетворяют мои потребности? благодаря
Возможно, вы можете добавить аргумент к своему функционалу, на котором осталось несколько секунд до обработки? И вычислить это значение как 5 * i? – mdscruggs
Вы хотите называть 'func' каждые 5 секунд 500 раз? Почему задержка? Как долго длится индивидуальный вызов 'func'? Вы хотите ограничить количество одновременных (одновременных) вызовов? Что произойдет, если вы добавите 'time.sleep()' после 'apply_async()'? Что вы хотите вместо этого? – jfs
индивидуальный вызов 'func' длится 25 секунд. и я хочу называть 'func' каждые 5 секунд в течение многих раз, возможно 500, возможно, 1000. – misteryes