スレッドにわずかな問題があります。それを解決する方法、または少なくともどの方向を探すべきかを教えてください。長い間探していますが、これまでのところ成功していません...問題は次のとおりです。3つのスレッドがあり、それらは可能です任意の順序で実行します (321;213;123...)。どのような順序でフローを実行しないとしても、1、2、3 の順序で実行する必要があります。この目的のために、1 つのミューテックスでスレッド同期を使用します。よろしくお願いします。
質問する
154 次
1 に答える
1
mutexを使用して、グローバル整数iThreadを保護します。iThreadを1に初期化します。スレッドを作成し、各スレッドのIDを渡します:1、2、3。
スレッドプロシージャで、ミューテックスをロックしてiThreadをチェックします。iThread!=スレッドIDの場合、条件を待ちます。
iThread = thread idの場合:mutexのロックを解除し、threadprocで作業を実行します。スレッドプロシージャの終了時に:ミューテックス、++ iThread、およびシグナル条件をロックし、ミューテックスのロックを解除します。
そんな感じ。他にも百万の方法があります。
于 2012-05-17T02:51:45.440 に答える