Python Multiprocesses и Linux-канал - PullRequest
       37

Python Multiprocesses и Linux-канал

0 голосов
/ 07 апреля 2019

Есть сомнения по поводу Python и многопроцессорности.

давайте возьмем этот код, например:


 from multiprocessing import Process, Queue

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

if __name__ == '__main__':
    q = Queue()
    p = Process(target=f, args=(q,))

Я видел, что процесс создает устройство Linux-трубы:

ls -la /proc/2051/fd/5
lr-x------ 1 ... /proc/2051/fd/5 -> 'pipe:[473589]'

Вопросы:

  1. Использует ли multiprocessing.Queue конвейерное устройство для обмена данными между процессами?

  2. если 1 да, значит, они не делят память, это так?

  3. если 2 да, каким образом Python сериализует и десериализует объекты между процессами?

Если 1 и 2 == False, как это работает в глубине обмена данными между процессами?

Я читал о multiprocessing.shared_memory, но я ищу класс Queue.

Не могу найти документацию по этому поводу.

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