返回信息流如题:
windows下python 3
apply_async 传入文件句柄参数,子进程不会创建成功,也没有异常
忘帮忙解释,谢谢
try:
f=open("./1.txt","a")
p=multiprocessing.Pool(4)
for i in range(3):
p.apply_async(sub_process_task,args=(i,f),callback=printRes)
p.close()
p.join()
print("all subprocessing done")
f.close()
except BaseException as e:
print(e)
这是一条镜像帖。来源:北邮人论坛 / python / #15373同步于 2016/8/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
windows中multiprocessing创建子进程为什么不能将文件句柄作为
cyczmm
2016/8/3镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
加上 `error_callback` 参数会发现抛了`TypeError` 说 `cannot serialize '_io.TextIOWrapper' object`。
3u,没注意到error_callback 参数
那不明一点是,为什么传递给子进程参数需要能序列化呢,按理解,直接复制一份内存数据到分配给子进程的内存中不就可以吗
【 在 Vampire 的大作中提到: 】
: 加上 `error_callback` 参数会发现抛了`TypeError` 说 `cannot serialize '_io.TextIOWrapper' object`。
因为在进程间传递的是 python 的数据结构,序列化使接收方能正确地恢复出数据
【 在 cyczmm 的大作中提到: 】
: 3u,没注意到error_callback 参数
: 那不明一点是,为什么传递给子进程参数需要能序列化呢,按理解,直接复制一份内存数据到分配给子进程的内存中不就可以吗