したがって、ファイルを開き、内容を行ごとに読み取り、各行を別の場所の関数に使用し、終了したらファイルを巻き戻す次のコードがあるとします。
FILE *file = Open_File();
char line[max];
while (!EndofFile())
{
int length = GetLength(line);
if (length > 0)
{
DoStuffToLine(line)
}
}
rewind(file);
ここでスレッドを使用して同時実行性を追加する方法があるかどうか疑問に思っています。ファイルに書き込むのではなく、読み取るだけなので、競合状態について心配する必要はないように感じます。ただし、while ループ内のコードを処理する方法がわかりません。1 つのスレッドがファイルをループし、別のスレッドが同時にファイルをループしている場合、互いに行をスキップし、他のスレッドを作成するからです。エラーなど?これにアプローチする良い方法は何ですか?