アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (4件)

排他制御したいわけではなく、イベント待ちしたい、ということでしょうか。



・加工機スレッドからの通知を非同期にしてキューイングする。
・画面スレッドは管理スレッドに通知を投げ、応答待ちでブロッキングする
・ウェイトから抜けると画面スレッドはキューに加工状況があるを確認、あれば再度管理スレッドに通知。

こんな感じでしょうか。
環境がWindowsなら(Linux等の場合はよみかえてください)、
一番簡単なのはメッセージ送信かと思います。(PostMessage等)

で、幾つか機になる点が。
・画面スレッドが本当にブロッキングすると画面描画も止まる。
→ポーリングや非同期の返信メッセージ待ちにするか、MsgWaitForMultipleObjectsEx等を検討。
制御スレッドと描画スレッドに分離するとか。このあたりは詳細仕様がわからない外野にはなんとも。

・どんどん、とありますが管理スレッドからの戻りが遅くてキューがあふれた場合の仕様
→古いデータを捨てるなどしないと遅延がたまる/死ぬ等がありえます。
    • good
    • 0

そもそも何の話でしょう?


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

自分で自分をロックする場合、誰がソレを解除してくれるのでしょうか。


ロックしたが最後、二度と解除されないような。
# もしくはロックカウントだけが増えていくだけか、
# タイムアウトがおきるか…。

どんなことが実現したくて、自分をロックしたいのでしょう。

単純にタイムアウトするまで待ちたい(特定時間止まりたい)等でしょうか。

(差しさわりのない範囲で)質問の背景を提示してください。

この回答への補足

加工機スレッド →→→→→→ 画面スレッド →→ 上位管理スレッドに通信
        加工状況         加工状況その2

 加工状況その2で上位管理スレッドに通知後、
上位スレッドから返答がきたら 次の加工状況を通信したいのですが、
 どんどん加工状況が送られてきます。

 画面スレッドで 次から次へと送られてくる情報を lockさせたいのです。
 もちろん加工機スレッドは動いていないとだめなのです。

補足日時:2006/08/02 19:39
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!