1

我需要使文件表现为循环缓冲区。我必须从一个线程写入数据。从另一个线程我从文件中读取。但是文件的大小是固定的。

任何想法?

4

3 回答 3

0

由于您没有提到您将使用的语言,我只能为您提供一个一般性的答案:编写一个抽象,当阅读超过文件末尾时,会寻找文件的开头并从那里继续阅读。

请注意,从多个线程写入和读取文件需要适当的同步。

于 2010-09-18T13:43:49.407 回答
0

我假设一个线程知道另一个线程的位置。在这种情况下,作者可以追加到文件并增加其位置,直到到达MAXSIZE. 然后它应该通过寻找位置 0 并继续覆盖旧内容,只要它的位置小于阅读器的位置,之后它就必须阻塞。同时,如果需要,读者可以阅读和环绕,直到到达作者的位置。

换句话说,它与内存缓冲区中的标准循环没有太大区别。您确定在您的情况下需要使用文件吗?您也可以考虑对生产者-消费者问题进行一些研究。

于 2010-09-18T13:46:47.137 回答
0

您还可以考虑使用命名管道。

于 2010-09-18T14:03:23.990 回答