Multiprocessing.Queue и join(): причина взаимной блокировки Python
Выберите ответ и проверьте себя на странице.
Другие упражнения по этой теме: Multiprocessing и threading Python: задачи на Queue, Lock и остановку.
Родительский процесс создал queue = multiprocessing.Queue(), запустил дочерний процесс-генератор, который отправил в очередь 10 000 больших массивов чисел через queue.put(). Сразу после запуска родительский процесс вызывает child_process.join(), не читая очередь. Программа зависает намертво. В чём точная причина взаимной блокировки (deadlock)?
Без регистрации · результат не сохраняется
Связанные задачи
- Остановка пула процессов Python: Queue, маркеры завершения и join
- Multiprocessing Python: ограничение очереди семафором
- Процесс и потоки Python: двухфазная обработка матрицы
- Queue и Lock в Python: дедупликация заявок между рабочими потоками
- Threading.Lock на Python: атомарное изменение общего словаря
- Удаление ключа из ChainMap в Python: проверка поведения del
