n 個のスレッドの配列があり、それぞれが 1 から 100 までの数を保持しています。
反復ごとに、すべてのスレッドが隣接スレッドをチェックする必要があります。
For thread i
IF thread[i].number > thread[i+1].number
AND thread[i].number > thread[i-1].number
THEN thread[i].number--
IF thread[i].number < thread[i+1].number
AND thread[i].number < thread[i-1].number
THEN thread[i].number++
それ以外の場合、変更はありません。
もちろん、すべてのスレッドがチェックを完了する前に変更は行われません。
私の質問は、私が配列リストのスレッドである場合、どうすれば隣人を見ることができますか?
私は次のことを考えました:
- スレッドごとに、ネイバーをチェックします。
- 各スレッドは int フィールドを保持し、それに応じて変更します。0 は変更なし、1 は inc、2 は dec です。
- バッファー (カウンター) を介して同期して、すべてのスレッドをカウントし、全員が完了していることを確認します。
- inc、dec、または no change を適用します。
どう思いますか?
ありがとう。