所以假设我有以下代码,我在其中打开一个文件,逐行读取内容,然后将每一行用于其他地方的函数,然后当我完成后倒回文件。
FILE *file = Open_File();
char line[max];
while (!EndofFile())
{
int length = GetLength(line);
if (length > 0)
{
DoStuffToLine(line)
}
}
rewind(file);
我想知道是否有一种方法可以在这里使用线程来添加并发性。因为我只是在阅读文件而不是写入文件,所以我觉得我不必担心比赛条件。但是我不确定如何处理 while 循环中的代码,因为如果一个线程正在循环文件而另一个线程同时循环文件,它们是否会导致彼此跳过行,使其他错误等?解决这个问题的好方法是什么?