原本python中多进程程序跑得挺好的,后来加了一部分代码,结果在运行到
lock = multiprocessing.Manager().Lock()
这一行时报出了如下错误:
[0]Exception: [Errno 11] Resource temporarily unavailable
在确定没有更改multiprocessing这一模块代码的情况后,初步判定要么是系统出异常了(很明显系统一般不会出问题),要么就是新加入的代码有问题。但是新录入的代码已经通过单元测试了啊,苦思无果之后,一步步的注释新代码。最后竟然发现是socket.setdefaulttimeout这个语句引起的错误。注释掉它之后就正常运行了。
原来是multiprocess模块与内置模块会有冲突,详细参考:http://erhuabushuo.is-programmer.com/?page=6
问题类似参考:http://stackoverflow.com/questions/6645851/multiprocessing-manager-rlock-error