c++ - 单个进程中的死锁 -?

标签 c++ multithreading thread-safety mutex deadlock

单个进程/线程在试图获取同一个互斥锁时被阻塞的情况可以称为“死锁”吗?

mutex_lock(&mutex) - 成功
...
mutex_lock(&mutex) - 阻塞,互斥体未释放

似乎“不可剪切资源”的条件不适用:这里只有单个进程/线程,因此没有不可剪切资源的情况 hold and wait:这里只是单进程,不等待其他进程释放请求的资源

最佳答案

是的,这是被考虑过的,或者可能会*导致死锁。

该术语未绑定(bind)到线程或进程 - 但请求

假设您的锁 (mutex) 是不可可重入的,并且假设您的资源在发生变异时被锁定,并且从多个来源改变资源是错误的。当/如果您的单线程进程尝试在突变中启动数据的新突变并且请求锁定已锁定的非重入锁时会发生什么?死锁

“可能”,因为您没有具体指定您正在处理的互斥体类型。

关于c++ - 单个进程中的死锁 -?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10570771/

相关文章:

c# - 这个 C# Parallel.ForEach "localFinally"方法线程安全吗?

java - 证明旧的 Date Java API 不是线程安全的

c# - 多线程中 SaveOrUpdate 上的 NHibernate TransientObjectException

c++ - 有没有办法在没有锁的情况下在两个不同的更新源之间进行仲裁?

c++ - 主模板中类成员的定义和特化期间的隐式实例化

c++ - std::vector::emplace_back 比 std::vector::push_back 慢的示例?

c++ - 使用 Boost 就地替换正则表达式

c++ - WinAPI:是否需要在可执行内存映射文件上调用 FlushInstructionCache?

c# - 等待多次回调

java - 为什么我的代码在不使用同步的情况下可以完美运行..?