0

問題の解決策を見つけたい: データを共有するために共有メモリを使用するプロセスがいくつかあります。同期には、mutex を使用します。しかし、ミューテックスをロックするプロセスがクラッシュすると、他のすべてのプロセスもクラッシュします。では、この問題を回避するにはどうすればよいでしょうか。

4

1 に答える 1

0

動作は、使用しているミューテックスの実装 (WinAPI、pthreads など) によって異なります。

たとえば、WinAPI では、ミューテックスを保持しているプロセスが解放せずに終了した場合、そのミューテックスを待機している他のプロセスは、WAIT_ABANDONEDなどの関数からの戻り値を受け取りWaitForSingleObjectます。扱っていない可能性があります。

他のライブラリには、独自の癖や実装の詳細がある場合があり、それに応じて確認する必要があります。

また、マルチスレッドではなくマルチプロセスについて話していることを確認してください。単一のプロセスの下に複数のスレッドがある場合、一部の実装では、そのプロセスの最初のスレッドが停止すると、そのプロセスのすべてのスレッドが停止するためです。

于 2012-08-07T18:14:51.080 に答える