python - 使用多处理和多线程时锁定文件 - Python

标签 python multithreading file locking multiprocessing

我有一个 main.py 文件。该文件使用multiprocessing来执行另一个名为function.py的文件。第二个使用线程将函数f应用于numpy数组的每个组件。 function.py 读取(整个过程中仅一次)文件 file.txt,为 f 读取一些数据,然后清除它(写入一个空文件)。我是否需要锁定 function.py 中的文件 file.txt 以避免从 创建的 N 个进程出现问题main.py执行function.py并在file.txt中读写?如果可以的话,该怎么办?

最后我得到了 semaphore .

最佳答案

是的,在某种程度上它必须被锁定。 让多个进程读取文件是没有问题的,只要它们只是读取文件即可。一旦有东西写入文件,您就必须确保读取和写入按所需的顺序发生。

可以通过使用原子创建的锁文件来完成锁定。进程成功创建锁定文件后,它就可以访问该文本文件。处理完文本文件后,它会删除锁定文件。这可确保在给定时间只有一个进程可以访问该文本文件。

关于python - 使用多处理和多线程时锁定文件 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44921103/

相关文章:

ruby-on-rails - Redis + ActionController::Live 线程不会死

php - 如何像include in php一样包含html文件?

Linux 拉撒路 : Wrong FileSize Reported by TFileStream

file - 使 Clojure 识别并隔离文件中的行

python - 计算四边形的面积

python - Scrapy只返回了1个项目,我的大脑卡住了

python - 使用python在json中递归搜索

python - python中创建不可初始化但其子类可初始化的类的最佳方法

python - 使用在 python 对象中声明的 c++ std::mutex

java - Java删除线程的方法