• ベストアンサー

同一スレッドで、ロックをかけたいのですが...

 同一スレッド内でロックを使いたいのですが 通常、ロックは別スレッド間でしか利かないようです。

質問者が選んだベストアンサー

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.4

排他制御したいわけではなく、イベント待ちしたい、ということでしょうか。 ・加工機スレッドからの通知を非同期にしてキューイングする。 ・画面スレッドは管理スレッドに通知を投げ、応答待ちでブロッキングする ・ウェイトから抜けると画面スレッドはキューに加工状況があるを確認、あれば再度管理スレッドに通知。 こんな感じでしょうか。 環境がWindowsなら(Linux等の場合はよみかえてください)、 一番簡単なのはメッセージ送信かと思います。(PostMessage等) で、幾つか機になる点が。 ・画面スレッドが本当にブロッキングすると画面描画も止まる。 →ポーリングや非同期の返信メッセージ待ちにするか、MsgWaitForMultipleObjectsEx等を検討。 制御スレッドと描画スレッドに分離するとか。このあたりは詳細仕様がわからない外野にはなんとも。 ・どんどん、とありますが管理スレッドからの戻りが遅くてキューがあふれた場合の仕様 →古いデータを捨てるなどしないと遅延がたまる/死ぬ等がありえます。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

そもそも何の話でしょう? 環境も全く分かりませんし、スレッドといってもサブプログラムの意味のスレッドとは限りませんしね。 例えば、CGIでBBSを作っていて、そのスレッドの話とか...

すると、全ての回答が全文表示されます。
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.2

自分で自分をロックする場合、誰がソレを解除してくれるのでしょうか。 ロックしたが最後、二度と解除されないような。 # もしくはロックカウントだけが増えていくだけか、 # タイムアウトがおきるか…。 どんなことが実現したくて、自分をロックしたいのでしょう。 単純にタイムアウトするまで待ちたい(特定時間止まりたい)等でしょうか。 (差しさわりのない範囲で)質問の背景を提示してください。

noname#192248
質問者

補足

加工機スレッド →→→→→→ 画面スレッド →→ 上位管理スレッドに通信         加工状況         加工状況その2  加工状況その2で上位管理スレッドに通知後、 上位スレッドから返答がきたら 次の加工状況を通信したいのですが、  どんどん加工状況が送られてきます。  画面スレッドで 次から次へと送られてくる情報を lockさせたいのです。  もちろん加工機スレッドは動いていないとだめなのです。

すると、全ての回答が全文表示されます。
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

ミューテックスではだめなのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A