0

我想为我的问题找到解决方案:我有一些使用共享内存来共享数据的进程。对于同步,我使用互斥锁。但是当锁定互斥锁的进程崩溃时,所有其他进程也会崩溃。那么如何避免这个问题呢?

4

1 回答 1

0

行为取决于您使用的互斥锁实现(例如 WinAPI、pthreads...)。

例如,在 WinAPI 中,如果一个持有互斥锁的进程在没有释放它的情况下死亡,则等待该互斥锁的其他进程会WAIT_ABANDONED从诸如WaitForSingleObject. 有可能你没有处理它。

其他库可能有自己的怪癖和实现细节,应该进行相应的审查。

还要确保您谈论的是多进程而不是多线程,因为在单个进程下的多个线程的情况下,在某些实现下,如果该进程的第一个线程死亡 - 该进程中的所有线程也会死亡。

于 2012-08-07T18:14:51.080 回答