我从here复制了一个简单的代码,似乎没有错误,因为作者声称已使用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
。有人可以指出发生了什么事吗?