如何解决Windows 10上的python 2.7.6线程:该进程无法访问该文件,因为该文件正在被另一个进程使用
我有一个Python 2.7.6脚本,它将启动并行执行的线程(从threading.Thread继承)。每个服务器都将访问特定于线程的文件,并在那里输出一些日志。
但是,在我的主控制台中,有时我会收到一条消息“该进程无法访问该文件,因为该文件正在被另一个进程使用。”。我不知道它来自哪个线程或在这里提到哪个文件。
如何查询?
解决方法
Process Monitor应该可以提供帮助。
添加以下过滤器:
-
$ env|grep sock all_proxy=socks5://127.0.0.1:7891
-$ lsof -i:7891 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ClashX 98115 dolphin 13u IPv4 0x4b43c23bd07f129f 0t0 TCP localhost:7891 (LISTEN) ClashX 98115 dolphin 15u IPv4 0x4b43c23ba89936af 0t0 UDP localhost:7891
-Process Name
-contains
,因为您使用的是Python -
python
-Include
-Result
-is
,因为您对错误感兴趣 -
SUCCESS
-Exclude
-Result
-is
,因为缓冲区溢出是正常的(缓冲区会增加,读取操作会重试)
因此,您应该可以找到共享冲突:
现在,您知道要查找的内容了,当然可以定义一个更简单的过滤器:
-
BUFFER OVERFLOW
-Exclude
-Result
-is
在生产中应用设置之前测试设置的代码:
SHARING VIOLATION
双击条目应为您提供线程ID和文件名:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。