問題タブ [recursive-mutex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - スレッドは、.ReleaseMutex() を呼び出す前に Mutex の .WaitOne() を複数回呼び出すことができますか? その逆も可能ですか?
私のコードでは、スレッドが .ReleaseMutex() を呼び出す前に .WaitOne() を複数回呼び出すと便利です。
逆もまた同様です: .WaitOne() の呼び出しで始まるループを再開する前に、.ReleaseMutex() を数回呼び出します。
一部のオペレーティング システムとコンパイラの組み合わせでは、これが可能です。そうでない人もいます。
c++ - コールバックと `std::recursive_mutex` - 有効なユースケース?
次のポリモーフィック インターフェイスがあります。
の一部の実装service
は同期的です。
その他は非同期です。
service
それ自体であるラッパーを作成する必要がありservice
ます。これはスレッドセーフである必要があり、以下の状態を維持する必要がありますmutex
。
_underlying->connect
呼び出しが常に非同期である場合は、正常にstd::mutex
機能します。ただし、_underlying->connect
同期の場合、プログラムはフリーズします。
std::recursive_mutex
これはの代わりにを使用することで解決できますがstd::mutex
、一般的にはコード臭であることが知られています。
これは有効な使用例std::recursive_mutex
ですか?
それとも設計ミス?service
インターフェイスを制御できないことに注意してください。