Есть сомнения по поводу 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]'
Вопросы:
Использует ли multiprocessing.Queue
конвейерное устройство для обмена данными между процессами?
если 1 да, значит, они не делят память, это так?
если 2 да, каким образом Python сериализует и десериализует объекты между процессами?
Если 1 и 2 == False, как это работает в глубине обмена данными между процессами?
Я читал о multiprocessing.shared_memory, но я ищу класс Queue.
Не могу найти документацию по этому поводу.