- 204 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 22:10:38 ]
- >>201,202
クリティカルセッションじゃダメですか。 セマフォじゃないのですが考えてみました。 グローバル変数flagを使います。 flagが1の時、スレッドAは実行、他B,Cは待機(Sleep) flagが0の時、スレッドB,Cは実行、Aは実行しない(待機もしない) void thread_A(void){ while(1){ //はじめにflagを立てる flag=1; //いろんな処理 //Aの処理が終わるので寝てたB,Cを起こすためflag=0 flag=0; } } void thread_B(void){ while(1){ //はじめにflagをチェックして、値が1ならSleep while(flag==1){Sleep(1000);} //いろんな処理 } } //thread_Cも同様の内容です これで実現できそうです。 セマフォについてですが、今回の処理に当てはめて考えるのが難しいのですが、 スレッドA,B,Cそれぞれ、どのような処理が必要かヒントいただけないでしょうか。
|

|