首页 > 解决方案 > std::mutex :: 当获得锁的线程被杀死时,对于 std::mutex 锁,其他等待线程会发生什么

问题描述

多个线程试图访问一个关键区域并假设我们使用std::mutex它来锁定它。现在其中一个线程获得了锁,过了一段时间如果它被杀死..系统行为会是什么?类似于 pthread mutex 健壮,我们有什么用std::mutex吗?

标签: c++multithreading

解决方案


类似于 pthread mutex 健壮,我们有什么用std::mutex吗?

不,我们没有。反正我知道,不在系统上。

在 POSIX 系统上,必须在创建互斥锁时设置互斥锁的“稳健性”。由于互斥体是由std::mutex构造函数创建的,并且 this 没有“鲁棒性”参数,因此这是不可能的。

在 Windows 上,没有针对互斥体/临界区对象的“稳健性”设置。


推荐阅读