0

次のようなリストがあります。

[Header/Element]
[Element]
[Element]
[Header]
[Element]
[Element]
[Element]
[Header]
[Element]
...
[Element/Header]

したがって、このリストの最初の位置に [Header] がある場合とない場合があり、最後に [Header] 要素が含まれていない場合もあります。

この要素をすべてのヘッダーの下にグループ化するアルゴリズムを作成するように割り当てられているため、ヘッダーが表示されると、このグループに対応する下のすべての要素を持つ新しいグループを開始できます。リストの最初の要素がヘッダーでない場合 (可能性があります)、既定のグループを使用する必要があるため、次のヘッダーまでのすべての要素がこのグループに含まれます。最後の要素についても同様です。グループの終了/開始位置を示すヘッダーがない場合があります。これまでのところ、リスト全体を直線的に反復することはそれほど難しくありません。

本当の問題は、このグループ化アルゴリズムを複数のスレッドを使用して行う方法を知っている人はいますか? 複数のスレッドが必要な理由は、このヘッダー/要素のリストが非常に大きくなる可能性があるためです。そのため、リストのさまざまな部分にグループ化された多くのスレッドを用意することをお勧めします。

問題は、これを行う手順が何であるか、特にリストがレイアウトされている方法でスレッドを同期する方法がわからないことです(ヘッダーを使用してから、以下のX個の要素を使用します)。

では、このような問題を以前に解決した人はいますか? X プログラミング言語での特定の実装にはあまり興味がありませんが、ほとんどの場合、このタスクを達成するために使用できる手順 (および、これらのスレッドを同期して重複を防ぐ方法) に関心があります。一部のコードを本当に共有したい場合に備えて、私は C# を使用しています。

4

1 に答える 1