c++ - 线程中使用锁是否会使其他不使用锁的线程减慢速度?

标签 c++ linux multithreading gcc g++

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

最佳答案

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

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

关于c++ - 线程中使用锁是否会使其他不使用锁的线程减慢速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60512335/

相关文章:

c++ - constexpr 计算量的实际限制

c++ - 使用 epoll 边缘触发时套接字上的数据过多

java - Teradata 和 JDBC 驱动程序 - classnotfoundexception ...但它在那里?

java - 一步步在JPanel上绘图

java - 在指定日期执行 Java Swing 操作

c++ - 一个定义规则和模板类特化

java - Python/C++/Java : Is there a library that will recognize characters and tell me where they are in an image?

c++ - qmake运行时如何将变量传递给qmake项目文件

python - 为什么我无法从通过 Python 脚本调用的进程中获取输出?

c++ - 语义问题 "Attempt to use a deleted function"遇到使用 std::thread 用法编译 C++ 代码