В многопроцессорной обработке Python время ожидания .get() всегда истекает, даже в коде, который, как известно, работает

#python #python-multiprocessing

#python #python-многопроцессорная обработка

Вопрос:

Мой многопроцессорный код, кажется, работает нормально, пока я не попытаюсь показать некоторые результаты с помощью .get(), где он будет зависать вечно, если я не использую .get (timeout = 5), где я получаю сообщение об ошибке, говорящее, что время ожидания истекло. Я использую код непосредственно со страницы документации по многопроцессорной обработке, чтобы убедиться в отсутствии ошибок.

 from multiprocessing import Process, Queue

def f(q):
    q.put([42, None, 'hello'])

if __name__ == '__main__':
    q = Queue()
    p = Process(target=f, args=(q,))
    p.start()
    print(q.get(timeout=5))    # prints "[42, None, 'hello']"
    p.join()
---------------------------------------------------------------------------
Empty                                     Traceback (most recent call last)
<ipython-input-14-6adfdb672fe3> in <module>
      8     p = Process(target=f, args=(q,))
      9     p.start()
---> 10     print(q.get(timeout=5))    # prints "[42, None, 'hello']"
     11     p.join()

~Anaconda3libmultiprocessingqueues.py in get(self, block, timeout)
    103                     timeout = deadline - time.monotonic()
    104                     if not self._poll(timeout):
--> 105                         raise Empty
    106                 elif not self._poll():
    107                     raise Empty

Empty:
  

Я действительно понятия не имею, почему .get () занимает целую вечность, потому что почти каждый фрагмент примера кода, который я нахожу для многопроцессорной обработки, кажется, использует его просто отлично.

Комментарии:

1. У меня ваш код работает просто отлично.

2. Тогда я не уверен, в чем моя проблема. Мой компьютер не обязательно является медленным компьютером, но я не запустил ни одного блока многопроцессорного кода, который работает для меня, поэтому я думаю, что я могу внести некоторые изменения в свою систему, чтобы она работала

3. Какая версия Python и где вы запускаете это (IDE)?