multithreading - 在并发编程中,是否有可能通过使用锁,一个程序有时会使用比必要更多的处理器?
问题描述
这是一道考试题(练习题,不是真题)。它是关于使用多核处理器的并发编程以及使用锁的问题。
“在并发编程中,是否有可能通过使用锁,一个程序有时可能会使用比必要更多的处理器?”
换句话说,这有可能吗?这是一个真/假问题。我在任何地方都找不到答案,我正在为我的考试复习。
解决方案
N个线程在任意时刻使用锁执行的并发程序都可以有M=0 .. N-1
线程等待锁;因此这个程序只能使用N-M
处理器,因为等待锁不需要处理器。因此,不,使用锁不会增加并发程序所需的处理器数量。
推荐阅读
- ios - Ionic Cordova - 未定义不是对象(self.fetch.bind)
- azure - 如何通过命令行部署 Azure 云服务包?
- jquery - 如何通过 jQuery 设置 `aria-selected=true`
- php - 拉拉维尔 5.6。PHP 单元。顺序不敏感的 assertJson() 方法
- python - Python列表追加:每次迭代多个追加
- html - 在充满数据的表后面设置文件放置区
- ssh - 使用 Windows cmd 在 Debian VPS 上进行 SSH 密钥连接
- database - Firebase 每秒 1.000.000 次写入(带事务)
- javascript - 为什么 iframe 内的 Vanilla/jQuery 重定向 URL 被解码/编码?
- python - Python:将列单元格中的每个数组转换为单个字符串