問題タブ [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.

0 投票する
2 に答える
577 参照

c# - スレッドは、.ReleaseMutex() を呼び出す前に Mutex の .WaitOne() を複数回呼び出すことができますか? その逆も可能ですか?

私のコードでは、スレッドが .ReleaseMutex() を呼び出す前に .WaitOne() を複数回呼び出すと便利です。

逆もまた同様です: .WaitOne() の呼び出しで始まるループを再開する前に、.ReleaseMutex() を数回呼び出します。

一部のオペレーティング システムとコンパイラの組み合わせでは、これが可能です。そうでない人もいます。

0 投票する
1 に答える
265 参照

c++ - コールバックと `std::recursive_mutex` - 有効なユースケース?

次のポリモーフィック インターフェイスがあります。

の一部の実装serviceは同期的です。

その他は非同期です。

serviceそれ自体であるラッパーを作成する必要がありserviceます。これはスレッドセーフである必要があり、以下の状態を維持する必要がありますmutex

_underlying->connect呼び出しが常に非同期である場合は、正常にstd::mutex機能します。ただし、_underlying->connect同期の場合、プログラムはフリーズします。

std::recursive_mutexこれはの代わりにを使用することで解決できますがstd::mutex、一般的にはコード臭であることが知られています。

これは有効な使用例std::recursive_mutexですか?

それとも設計ミス?serviceインターフェイスを制御できないことに注意してください。