我有一个线程定期写入文件(writeThread),另一个线程(readThread)从文件中异步读取。readThread 可以使用不同的句柄访问文件而不弄乱任何东西吗?
如果没有,python是否有一个可以被 writeThread 使用但不阻塞 readThread 的共享锁?我不喜欢简单的非共享锁,因为文件访问需要一毫秒的顺序,并且 writeThread 写入周期是相同的顺序(周期取决于一些外部参数)。因此,可能会出现这样一种情况,即使 writeThread 可以释放锁,它也会立即重新获取它,从而导致饥饿。
我能想到的一个解决方案是维护文件的多个副本,一个用于读取,另一个用于写入,并一起避免整个情况。但是,所涉及的文件大小可能会变得很大,因此这种方法并不可取。
有没有其他选择或者这是一个糟糕的设计?
谢谢