Эта проблема, похоже, ускользает от меня - все решения более похожи на обходные пути и добавляют к коду довольно сложную задачу. С тех пор, как были сделаны какие-либо сообщения об этом, существуют ли какие-либо решения simple
для следующего: при обнаружении прерывания клавиатуры, чистое завершение всех дочерних процессов, завершение программы?Многопроцессорная клавиатура Обработка ввода
Код ниже фрагмент моей структуры multiproccess - Я хотел бы сохранить как Возможное, добавляя необходимую функциональность:
from multiprocessing import Pool
import time
def multiprocess_init(l):
global lock
lock = l
def synchronous_print(i):
with lock:
print i
time.sleep(1)
if __name__ == '__main__':
lock = Lock()
pool = Pool(processes=5, initializer=multiprocess_init, initargs=(lock,))
for i in range(1,20):
pool.map_async(synchronous_print, [i])
pool.close() #necessary to prevent zombies
pool.join() #wait for all processes to finish