首页 > 解决方案 > 在线程中使用锁会减慢其他不使用锁的线程吗?

问题描述

如果我有一个经常使用锁的线程,它会减慢其他不使用锁的线程(例如,由于 CPU 中的全局锁行为等)。

标签: c++linuxmultithreadinggccg++

解决方案


不,锁只是由系统调用组成。在 C/C++ 中,无需担心解释器开销,没有“全局解释器锁”等等。

等待锁当然会减慢速度,您应该仔细规划应用程序的设计,以尽量减少线程请求锁并等待获得锁的机会。最坏的情况是当您将应用程序划分为多个线程但它们都必须等待某些东西并因此有效地序列化时。


推荐阅读