
No.4ベストアンサー
- 回答日時:
排他制御したいわけではなく、イベント待ちしたい、ということでしょうか。
・加工機スレッドからの通知を非同期にしてキューイングする。
・画面スレッドは管理スレッドに通知を投げ、応答待ちでブロッキングする
・ウェイトから抜けると画面スレッドはキューに加工状況があるを確認、あれば再度管理スレッドに通知。
こんな感じでしょうか。
環境がWindowsなら(Linux等の場合はよみかえてください)、
一番簡単なのはメッセージ送信かと思います。(PostMessage等)
で、幾つか機になる点が。
・画面スレッドが本当にブロッキングすると画面描画も止まる。
→ポーリングや非同期の返信メッセージ待ちにするか、MsgWaitForMultipleObjectsEx等を検討。
制御スレッドと描画スレッドに分離するとか。このあたりは詳細仕様がわからない外野にはなんとも。
・どんどん、とありますが管理スレッドからの戻りが遅くてキューがあふれた場合の仕様
→古いデータを捨てるなどしないと遅延がたまる/死ぬ等がありえます。
No.3
- 回答日時:
そもそも何の話でしょう?
環境も全く分かりませんし、スレッドといってもサブプログラムの意味のスレッドとは限りませんしね。
例えば、CGIでBBSを作っていて、そのスレッドの話とか...
No.2
- 回答日時:
自分で自分をロックする場合、誰がソレを解除してくれるのでしょうか。
ロックしたが最後、二度と解除されないような。
# もしくはロックカウントだけが増えていくだけか、
# タイムアウトがおきるか…。
どんなことが実現したくて、自分をロックしたいのでしょう。
単純にタイムアウトするまで待ちたい(特定時間止まりたい)等でしょうか。
(差しさわりのない範囲で)質問の背景を提示してください。
この回答への補足
加工機スレッド →→→→→→ 画面スレッド →→ 上位管理スレッドに通信
加工状況 加工状況その2
加工状況その2で上位管理スレッドに通知後、
上位スレッドから返答がきたら 次の加工状況を通信したいのですが、
どんどん加工状況が送られてきます。
画面スレッドで 次から次へと送られてくる情報を lockさせたいのです。
もちろん加工機スレッドは動いていないとだめなのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VC++スレッドの正しい終了のさ...
-
スレッドにて同一メモリの書き...
-
VB2005 シリアル通信のClose処理
-
待機関数(WaitForMultipleObjec...
-
メモリアクセスの競合について
-
メインダイアログが最背面に表...
-
Windows上で、シグナル(SIGTERM...
-
Macターミナルで実行中のプログ...
-
VBAで別プロセスのExcelのフル...
-
VC++2010 TCPIP通信の受信処理...
-
Mac 乗数の入力方法
-
VB6.0 SHELLで起動...
-
メモリが不足しています(VBA)
-
メモリのセグメント違反の解決...
-
VB.netでUSBメモリの固有I...
-
Socket通信の0バイト受信について
-
PostMessageの連続送信
-
小数点を含む数値かどうか判断...
-
ソケットのrecvの戻り値が0
-
ADOでアクセスのレコードに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スレッドの監視方法について
-
VC++スレッドの正しい終了のさ...
-
複数スレッドを動作させるのに...
-
スレッドの安全な終了のさせ方
-
WaitForSingleObjectの使い方に...
-
スレッドにて同一メモリの書き...
-
Windows上で、シグナル(SIGTERM...
-
同一スレッドで、ロックをかけ...
-
マルチスレッド内のループについて
-
sleep関数とは?
-
スレッドの終了はどうやるんで...
-
メインスレッドのPostMessageと...
-
CWnd::OnTimerのスレッドの取得
-
C言語である関数への同時アクセ...
-
別スレッドのデータを受信できない
-
VB2005 シリアル通信のClose処理
-
pthreadの使い方
-
ユーザーインターフェイスの一...
-
Linuxでスレッド優先度って変え...
-
win32 スレッドのハンドルついて
おすすめ情報