python-2.7 - python中的多处理,OSError:[Errno 16]设备或资源繁忙
问题描述
我正在测试 python 2.7 中的多处理管理器包,并遇到了一个已经记录在 Unix 上运行的 NFS ( https://bugs.python.org/issue13978 ) 的问题。问题是虽然这突出了问题,但我不清楚您如何解决这个问题,或者替代方案是什么?
from multiprocessing import Manager
if __name__ == '__main__':
Manager()
然后我调用我的脚本并得到:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/util.py", line 274, in
_run_finalizers
finalizer()
File "/usr/lib/python2.7/multiprocessing/util.py", line 207, in __call__
res = self._callback(*self._args, **self._kwargs)
File "/usr/lib/python2.7/shutil.py", line 252, in rmtree
onerror(os.remove, fullname, sys.exc_info())
File "/usr/lib/python2.7/shutil.py", line 250, in rmtree
os.remove(fullname)
OSError: [Errno 16] Device or resource busy: '/home/user/.tmp/pymp-xrl_Vc/.nfs0000000196'
如果我不能使用管理器,是否有另一种方法可以在多个进程之间共享一个对象,或者是否有解决方法(manager.shutdown 和 del manager 的建议方法没有任何效果)?
今天有更多的时间来看看这个,经过一番挖掘后,我找到了一个导致干净退出的解决方案(即没有错误)。
from multiprocessing import Manager
mp = Manager()
mp.shutdown()
#results in the above error
mp = Manager()
mp._process.terminate()
mp.shutdown()
#shutdown complete without any errors
我不太清楚为什么这样做会起作用,或者这样做是否明智
解决方案
推荐阅读
- c - c中的a+=k和a=a+b有区别吗?
- javascript - React Context 访问组件外的当前状态
- c - 我正在尝试使用 fscanf 从 .csv 文件中读取
- json - 每个新的 Swift 区块链 SmartContract 发送方进入 TableView 列的 UIButton 操作
- r - 将行添加到变量以创建表 - RStudio
- reactjs - 以编程方式从状态创建带有 backgroundimage url 的 div
- python - 多类模型中的最后一个 Dense 层如何期望形状为 (1,)?
- ios - UITableview 的滑动手势
- wordpress - 连接到本地主机的域和链接不起作用(ERR_CONNECTION_REFUSED)
- kotlin - Kotlin Koans 关于 HTML 构建器的问题