我一直认为,就像内存一样,操作系统有责任在进程结束后进行清理。不幸的是,我很难找到很多证据,所以我不能真正保证会发生什么。
我的主要问题是,如果一个进程正在锁定一个互斥锁,并且它会在很少或没有清理的情况下突然退出(即,在 C 中调用 abort,或在 C++ 中终止)会发生什么?
是否有任何保证操作系统会解锁互斥锁,或者只是暗示大多数有信誉的系统会(类似于未释放的内存)?
如果没有保证,这实际上会在仍在运行的进程和死进程持有的锁之间造成死锁吗?
如果可以以这种方式创建死锁,是否可以在进程的线程之间复制,而不是通过单独进程之间的共享互斥锁?