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