原本python中多进程程序跑得挺好的,后来加了一部分代码,结果在运行到
lock = multiprocessing.Manager().Lock()
这一行时报出了如下错误:
[0]Exception: [Errno 11] Resource temporarily unavailable
在确定没有更改multiprocessing这一模块代码的情况后,初步判定要么是系统出异常了(很明显系统一般不会出问题),要么就是新加入的代码有问题。但是新录入的代码已经通过单元测试了啊,苦思无果之后,一步步的注释新代码。最后竟然发现是socket.setdefaulttimeout这个语句引起的错误。注释掉它之后就正常运行了。
原来是multiprocess模块与内置模块会有冲突。
详细参考:《python3 多进程库 multiprocessing 使用简介》https://blog.youkuaiyun.com/whatday/article/details/104908804
本文介绍了一个在Python多进程环境下,使用multiprocessing模块时遇到的问题,即在引入socket.setdefaulttimeout后出现资源暂时不可用的错误。通过逐步注释新加入的代码,最终定位到socket模块与multiprocessing模块存在冲突,注释掉socket.setdefaulttimeout语句后,程序恢复正常运行。
1667

被折叠的 条评论
为什么被折叠?



