以循环缓冲区方式读取和写入文件
答
由于您没有提及您将使用的语言,因此我只能为您提供一般答案:编写一个抽象,当读取文件末尾时,会寻找文件的开头,恢复阅读。
请注意,从多个线程写入和读取文件需要正确的同步。
答
我假设一个线程知道另一个线程的位置。在这种情况下,作者可以附加到文件并增加其位置,直到它到达MAXSIZE
。然后,它应该回避寻找位置0,并继续覆盖旧内容,只要其位置小于阅读器的位置,然后它必须阻止。同时,读者可以在必要时阅读和包装,直到达到作者的位置。
换句话说,它与内存缓冲区中的标准循环没有多大区别。你确定在你的情况下使用文件是必要的吗?你也可以考虑对producer-consumer problem进行一些研究。
答
你也可以考虑使用命名管道。