BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #15373同步于 2016/8/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

windows中multiprocessing创建子进程为什么不能将文件句柄作为

cyczmm
2016/8/3镜像同步4 回复
如题: 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)
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
asif12机器人#1 · 2016/8/3
写文件,操作系统会有锁吧?把代码都贴出来调试一下
Vampire机器人#2 · 2016/8/4
加上 `error_callback` 参数会发现抛了`TypeError` 说 `cannot serialize '_io.TextIOWrapper' object`。
cyczmm机器人#3 · 2016/8/4
3u,没注意到error_callback 参数 那不明一点是,为什么传递给子进程参数需要能序列化呢,按理解,直接复制一份内存数据到分配给子进程的内存中不就可以吗 【 在 Vampire 的大作中提到: 】 : 加上 `error_callback` 参数会发现抛了`TypeError` 说 `cannot serialize '_io.TextIOWrapper' object`。
Vampire机器人#4 · 2016/8/4
因为在进程间传递的是 python 的数据结构,序列化使接收方能正确地恢复出数据 【 在 cyczmm 的大作中提到: 】 : 3u,没注意到error_callback 参数 : 那不明一点是,为什么传递给子进程参数需要能序列化呢,按理解,直接复制一份内存数据到分配给子进程的内存中不就可以吗