マルチスレッドで以下のような内容のプログラムを組みたいのですが、当方マルチスレッド超初心者で、ミューテックス、セマフォの基本的な使用方法は習得したつもりですが、この問題を解決する方法が見当もつきません。解決方法をご存知の方がいらっしゃいましたら、ご教授お願いします。
スレッドは全部で6本あります。そのうち、1本は初期状態では、停止しています。他のスレッド5本は、初期状態で動作を始めています。この5本のスレッドはそれぞれ決められたポイントで、何らかの方法で、一時停止をさせます。この5本のスレッドすべてがそれぞれのポイントで停止した時点で、初期状態で停止していた1本のスレッドが動き出し、今度は、このスレッドを決められたポイントに来た時点で、停止させます。停止が確認できたら、止めていた5本のスレッドを一挙に稼動させます。あとはこれの繰り返しです。
環境はWinXp, VC2005 です。
No.1ベストアンサー
- 回答日時:
イベントオブジェクトを使えば解決できると思います。
参考↓
http://nienie.com/~masapico/api_CreateEvent.html
http://www.kumei.ne.jp/c_lang/sdk/sdk_89.htm
この仕様で作る場合には、PulseEventとSetEventをうまく組み合わせる必要がありますね。
http://nienie.com/~masapico/api_PulseEvent.html
http://nienie.com/~masapico/api_SetEvent.html
返答遅れました。すいません。
仕様道理動作するものができました。
SetEventを五本それぞれのスレッドの最後に配置し、その直後に一本のスレッドのほうがSetEventできるEventObjectを置くことで、解決しました。結局EventObjectは6つ使用したことになります。
ただ、一本の方のスレッドの処理が一瞬なので、SetEventを処理したと直後にResetEventを処理しても間に合わず、デッドロックしてしまいます(今のところSleepさせて回避させています。)が、これは今後の課題としてとっておきます。
返答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 運転免許・教習所 つい先週くらいに車校にmtを取るために入り今日場内教習の3回目を終えたのですが、急発信や急停止、カー 12 2022/12/11 19:46
- エアコン・クーラー・冷暖房機 富士通のエアコンですが、作業員に見て貰っても、以後冷房運転が時々止まり困ってます。 6 2022/07/18 19:22
- 消費者問題・詐欺 お金を取り返すことは可能でしょうか? 4 2023/01/07 13:17
- 洗濯・クリーニング・コインランドリー 【止まってばかりの洗濯機…これって洗えてますか?】 ※長文です。すみません とても困っておりますので 4 2022/03/30 11:50
- Chrome(クローム) 【Google】「同期は有効です」と表示されているがブックマークが同期されていない 2 2022/11/17 13:32
- 通信費・水道光熱費 ドコモ利用停止後の流れについて 1 2022/04/23 13:04
- 憲法・法令通則 「止まれ」の標識も車線境界線も無い側道合流部 1 2023/06/09 15:00
- 運転免許・教習所 一時停止は視界が悪くてもやはり線のところで左右確認しないと捕まりますか? 一時停止の線のところに停車 18 2023/06/20 21:50
- Chrome(クローム) Google Chrome の同期が必ず一時停止になってしまい困っています。 GoogleChrom 2 2023/02/04 16:45
- Chrome(クローム) Google Chrome の同期が必ず一時停止になってしまい困っています。 GoogleChrom 1 2023/02/05 09:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スレッドの安全な終了のさせ方
-
スレッドの監視方法について
-
WaitForSingleObjectの使い方に...
-
C++でマルチスレッドによるネッ...
-
スレッドの終了はどうやるんで...
-
C言語である関数への同時アクセ...
-
msec単位のWait Timerが作れない!
-
MFC通信プログラムマルチスレッ...
-
スレッドの終了の仕方
-
Macターミナルで実行中のプログ...
-
ショッピング
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
C言語で、メモリを解放しないで...
-
MACで動く実行ファイルをWindow...
-
家電製品の電力周波数を変える機械
-
Excel-VBAのmsgBox()の不思議
-
メッセージボックスのボタン名変更
-
Excel(VBA)でSetTimer関数を使...
-
【C言語 数独】 C言語で9×9の数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WaitForSingleObjectの使い方に...
-
スレッドにて同一メモリの書き...
-
VC++スレッドの正しい終了のさ...
-
スレッドの監視方法について
-
Windows上で、シグナル(SIGTERM...
-
スレッドの終了の仕方
-
スレッドの安全な終了のさせ方
-
CWnd::OnTimerのスレッドの取得
-
MFC通信プログラムマルチスレッ...
-
Linuxでスレッド優先度って変え...
-
VB2005 シリアル通信のClose処理
-
.netアプリへのSendMessageでフ...
-
マルチスレッドについて
-
別スレッドからメインダイアロ...
-
スレッドの終了はどうやるんで...
-
マルチスレッドプログラミング...
-
特定のスレッドの破棄
-
別スレッドのデータを受信できない
-
msec単位のWait Timerが作れない!
-
.NetのBackgroundWorkerクラス...
おすすめ情報