c++ - 在线程中使用锁会减慢其他不使用锁的线程吗?
问题描述
如果我有一个经常使用锁的线程,它会减慢其他不使用锁的线程(例如,由于 CPU 中的全局锁行为等)。
解决方案
不,锁只是由系统调用组成。在 C/C++ 中,无需担心解释器开销,没有“全局解释器锁”等等。
等待锁当然会减慢速度,您应该仔细规划应用程序的设计,以尽量减少线程请求锁并等待获得锁的机会。最坏的情况是当您将应用程序划分为多个线程但它们都必须等待某些东西并因此有效地序列化时。
推荐阅读
- r - 计算 R 中两组项之间的单个 Jaccard 系数
- java - 将 gremlin-groovy 翻译成 jave,例如 it 关键字 / sum() 步骤的使用
- kubernetes - 为项目部署集成 Kubernetes Helm 模板
- javascript - 未捕获的类型错误:无法读取未定义的属性“单击”
- python - 创建可导入的 Python 3 包/模块
- laravel - 在 Heroku 18 上安装 PDFTK 以在我的 Laravel 应用程序中使用
- laravel-5.4 - (1/1) ErrorException array_merge(): Argument #2 is not an array in ProviderRepository.php line 95
- java - 如何解决“无法解析 AndroidManifest.xml 中的 XML”?
- asp.net-core - 发布到服务器时设置环境为开发
- amazon-web-services - 当我的 aws lambda 函数执行时如何选择弹性 IP