gpt4 book ai didi

c++ - 死锁会导致高 CPU 使用率吗?

转载 作者:太空狗 更新时间:2023-10-29 23:23:13 59 4
gpt4 key购买 nike

是死锁使进程进入高 CPU 使用率,还是这两个进程都“休眠”,等待对方完成?

我正在尝试在 Linux 系统上调试用 C++ 编写的多线程程序。我注意到某个特定进程的 CPU 使用率过高,我想知道这是否可能是由于死锁问题造成的。我发现一个进程始终使用比我预期的更多的 CPU(使用 top),并且该进程可以运行,但运行速度很慢。如果死锁导致进程休眠并且不会导致 CPU 使用率过高,那么至少我知道这不是死锁问题。

最佳答案

死锁通常不会导致高 CPU 使用率,至少如果死锁发生在由操作系统支持的同步原语中,这样进程在等待时进入休眠状态,则不会。

如果发生死锁,即无锁同步机制(例如比较交换与空闲循环),CPU 使用率将会上升。

此外,还有一个活锁的概念,当具有多个线程的程序由于某些条件(取决于线程之间的交互)无法满足而无法前进到某个预期状态时,就会发生这种情况,即使没有线程明确地等待某些东西。

关于c++ - 死锁会导致高 CPU 使用率吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25314505/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com