banner

代计算机在内,所有的现代计算机都能够并发处理多条执行流。它们有多个 CPU 核心,有带有数百个简单核心的图形处理器,还有音频处理器、磁盘控制器、网卡,甚至带有单独的计算能力和内存的键盘。无论喜欢与否,开发人员都得生活在一个并发的世界中,他们必须理解如何编写并发活动。

以前,并发编程一直实践在单核处理器上。直到 2005 年,多核微处理器问世,它们提供了真正(并非时间切割)的并发,改变了开发人员的观念,形成了具有新规则的最佳实践。即使是对于那些在单核处理器系统中经历过并发问题的开发人员来说,这些规则可能也是陌生的。

tips

如果未来的处理器发展方向会让商业设备配置数十甚至上百个核心,那么最佳

10.3.3 对 std::deque 的排序

使用 std::sort() 对 deque 中的 100 000 条元素排序耗时 24.82 毫秒,比 vector 慢了 33%。使用 std::stable_sort() 对 deque 排序更快,耗时 17.76 毫秒,只比 vector 慢了不到 10%。在这两种情况下对有序 deque 排序都比对无序 deque 排序更快。

10.3.4 查找 std::deque

在有序 deque 中查找所有的 100 000 个键需要花费 35 毫秒,只比在 vector 中查找慢了想要讨论的重点。纳米机器人、基因改造虽然是影视作品热衷的话

题,却和现实领域颇有距离。更重要的是,虽然人工智能已经进入许多最前沿的医学领域,

但几乎都还停留在理论或者实验阶段,不过在一些更成熟的领域,人工智能已经可以发挥重

要作用。

在眼部疾病治疗中,由于对病人信息掌握有限,有1/10的病人会在治疗过程中受到伤

害,其中至少一半伤害是可以预防的。英国知名的摩尔眼科医院与谷歌展开合作,打造了一

款机器学习系统。这款系统仅凭眼部数字扫描结果,即可识别潜在的眼部疾病风险。眼部扫

描技术早已有之,但是传统的机器在完成扫描之后,无法快速分析复杂的眼部数据。机器学