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