並列プログラムをプログラミングしているときに、2 つの値の一意のグループを使用して何かを作成するという問題に遭遇することがよくあります。言い換えれば、これは握手問題であり、各人が他の人と握手をしなければなりません。握手後は、参加者全員で夕食会。
これを行う方法を知っている2つのアプローチがあります。
すべての男性に番号を付け、それを各男性に平行にして、番号が小さい男性と握手します。最後の番号の男性が全員に握手を求める前に、夕食は冷えます。
参加人数をお伝えし、その値をもとに条件を作っていきますので、ほぼ全員が揺れます。並行して同じ数の手。参加者は数学が苦手なので、夕食は寒くなります。(この場合、人々は別人のように振る舞うことができます)
男性を数字に交換したり、振って比較したり、乗算したりすることもできます。問題は、寒くなる前にその夕食を食べたいのですが、1つのスレッドを待ったり、多くの条件を作成したりすると、プロセスが遅くなることです.
これを行うための他のより効率的な方法はありますか?