Почему возникает ошибка EOFError при использовании многопроцессорной обработки. Управляющий делами()? - PullRequest
0 голосов
/ 27 мая 2020

В Python для обмена данными между разными процессами с помощью multiprocessing мы используем multiprocessing.Manager(). Я хочу получить вывод [1,2,3,4,5,6,7,8,9,10] в следующем коде, но получаю EOFError. Зачем? Код:

import multiprocessing
manager=multiprocessing.Manager()

final_list=manager.list()
input_list_one=[1,2,3,4,5]
input_list_two=[6,7,8,9,10]

def worker(data):
    for item in data:
        final_list.append(item)

process_1=multiprocessing.Process(target=worker,args=[input_list_one])
process_2=multiprocessing.Process(target=worker,args=[input_list_two])
process_1.start()
process_2.start()
process_1.join()
process_2.join()

print(final_list)

Я получаю следующую ошибку:

Process SyncManager-1:
Traceback (most recent call last):
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/managers.py", line 539, in _run_server
    server = cls._Server(registry, address, authkey, serializer)
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/managers.py", line 139, in __init__
    self.listener = Listener(address=address, backlog=16)
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/connection.py", line 438, in __init__
    self._listener = SocketListener(address, family, backlog)
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/connection.py", line 576, in __init__
    self._socket.bind(address)
PermissionError: [Errno 13] Permission denied
Traceback (most recent call last):
  File "/storage/emulated/0/qpython/.last_tmp.py", line 2, in <module>
    manager=multiprocessing.Manager()
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/context.py", line 56, in Manager
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/managers.py", line 517, in start
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/connection.py", line 250, in recv
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/connection.py", line 407, in _recv_bytes
  File "/data/user/0/org.qpython.qpy3/files/lib/python36.zip/multiprocessing/connection.py", line 383, in _recv
EOFError
1|u0_a823@land:/ $

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...