我有一个main.py
文件。此文件使用multiprocessing
执行另一个名为function.py
的文件。第二个使用threading
将函数f
应用于numpy array
的每个组件。function.py
读取(在所有进程中仅读取一次)文件,file.txt
,读取f
的一些数据,然后清除它(写入空文件)。我是否需要function.py
file.txt
锁定文件,以避免main.py
执行function.py
和file.txt
读写而创建N
进程的问题?如果是这样,怎么能做到?
最后我用semaphore
得到了它.
是的,在某种程度上它必须被锁定。 让多个进程读取文件是没有问题的,只要它们只读取文件。一旦有东西写入文件,您必须确保读取和写入按所需的顺序进行。
锁定可以通过使用以原子方式创建的锁定文件来完成。进程成功创建锁定文件后,将获得对文本文件的访问权限。使用文本文件完成该过程后,它将删除锁定文件。这可确保在给定时间只有一个进程可以访问文本文件。