我有一个 main.py
文件。该文件使用multiprocessing
来执行另一个名为function.py
的文件。第二个使用线程
将函数f
应用于numpy数组
的每个组件。 function.py
读取(整个过程中仅一次)文件 file.txt
,为 f
读取一些数据,然后清除它(写入一个空文件)。我是否需要锁定 function.py
中的文件 file.txt
以避免从 创建的
执行N
个进程出现问题main.pyfunction.py
并在file.txt
中读写?如果可以的话,该怎么办?
最后我得到了 semaphore
.
最佳答案
是的,在某种程度上它必须被锁定。 让多个进程读取文件是没有问题的,只要它们只是读取文件即可。一旦有东西写入文件,您就必须确保读取和写入按所需的顺序发生。
可以通过使用原子创建的锁文件来完成锁定。进程成功创建锁定文件后,它就可以访问该文本文件。处理完文本文件后,它会删除锁定文件。这可确保在给定时间只有一个进程可以访问该文本文件。
关于python - 使用多处理和多线程时锁定文件 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44921103/