私は、ユーザーからリクエストを受け取ることができるゲームサーバーを持っています。ユーザーは作品の配置を要求することができます。次に、placeメソッドは、いくつかの非同期のhttpwebrequests(タイムアウト付き)を生成して、配置が正しいかどうかを調べます。サーバーが配置要求を受け取ったときにロックされるロックが必要で、Webコールバックによってロックが解除されます。私はReaderWriterLockを使用しますが、同じスレッドにとどまる場合にのみ機能し、Web要求のコールバックは別のスレッドで発生します。私は使用すべき別のロックがありますか?スレッドをロックして別のスレッドにロック
6
A
答えて
9
a semaphoreを使用できます。ロックスレッドはパーミットを取得します。非同期スレッドは許可を解放します。セマフォーは個々のスレッドに束縛されていないので気にならない。
4
Semaphoreを使用できます。マニュアルから引用。
Semaphoreクラスは、WaitOneまたはReleaseの呼び出しでスレッドIDを強制しません。
つまり、2つの異なるスレッドから取得/解放する際に問題はありません。
関連する問題
- 1. スレッドは別のスレッドをロックしていますか?
- 2. リアクティブエクステンション、ロック、スレッド
- 3. あるスレッドから別のスレッドに転送できるロック
- 4. Androidスレッドとオブジェクトのロック
- 5. JVMロック・スレッドのないモニターを含むスレッド・ダンプ
- 6. IOS SDK - NSLockメッセージ:「スレッドからロック解除もロックしていなかった」
- 7. ロック付きループ内でのスレッド実行
- 8. 新しいスレッドのDispatcher.InvokeがUIをロックしています
- 9. スレッドIDに基づいてスレッドをロックする方法はありますか?
- 10. UIスレッドをロックしてdoinbackgroundでASynchTaskをスリープします
- 11. NSTimerを繰り返してUIスレッドをロック
- 12. スレッドはロックFIFOで待機していますか?
- 13. Javaスレッドのダンプ: "ロックするのを待っていない..."
- 14. 目的C NSLock:異なるスレッドでNSLockをロックおよびロック解除する
- 15. Pythonスレッディング。どのようにスレッドをロックするのですか?
- 16. 別のクラスで実行中のスレッドをロック/ポーズする方法は?
- 17. Java:スレッドを別のスレッドに渡すスレッド
- 18. スレッドスケジューリング - スレッドが通知後にロックを取得する方法
- 19. Android:デバイスがロックされていてもスレッドを実行し続ける
- 20. AndroidのSQLite:複数のスレッドからのロック+アクセス
- 21. スレッドが失われた場合のテーブルのロック解除
- 22. このロック使用スレッドは安全ですか?
- 23. MemoryCacheスレッドの安全性、ロックは必要ですか?
- 24. Androidのjava.lang.IllegalMonitorStateException:オブジェクトがスレッドの前にロックされていないwait()
- 25. C#スレッド - ロックまたはモニタが必要ですか?
- 26. Androidスレッド - 別のスレッドからスレッドを実行し、ハンドラメッセージを待っています
- 27. ロックによるチェーン・ロック
- 28. オブジェクトのロックを持つスレッドの詳細を取得する方法
- 29. 現在のスレッドのSQLiteテーブルをロックすることはできますか?
- 30. 複数のスレッドがJavaの同じモニターでロックを保持できますか?
ありがとうございました。 – Nikhil