Ошибка многопроцессорного ввода-вывода с использованием sys.stdout - PullRequest
0 голосов
/ 01 июля 2019

У меня есть простой код, скопированный с здесь , похоже, нет ошибки, потому что автор утверждал, что проверил его с помощью Python 3.7.1, я использую Python 3.7.3, который является последней стабильнойверсия.

Ниже приведен код:

import multiprocessing
import sys


def worker_with(lock, stream):
    with lock:
        stream.write('Lock acquired via with\n')


def worker_no_with(lock, stream):
    lock.acquire()
    try:
        stream.write('Lock acquired directly\n')
    finally:
        lock.release()


lock = multiprocessing.Lock()
w = multiprocessing.Process(
    target=worker_with,
    args=(lock, sys.stdout),
)
nw = multiprocessing.Process(
    target=worker_no_with,
    args=(lock, sys.stdout),
)

w.start()
nw.start()

w.join()
nw.join()

Ошибка выглядит так: TypeError: cannot serialize '_io.TextIOWrapper' object.Может кто-нибудь указать, что происходит?

...