在 Guido Van Rossum 的 2012 Pycon 演讲中,他谈到了线程:
如果您将线程用于它们最初的用途,那么操作系统级线程用于执行并行 IO,而不是用于执行并行计算。[资源]
传统上,关于进程与线程的讨论围绕调度、上下文切换成本或共享资源成本之间的差异展开。
但是,我从未了解或听说过一个概念,即对于 CPU 密集型任务与 IO 相比,一个必然比另一个更好。如果进程和线程之间本质上存在 1-1 关系(并非总是可以假设),那么从 CPU-vs-IO 的角度来看,使用哪一个是否重要?
标准的 pthread 文档并未阐明这一特定主张;有人知道更好的来源吗?
在构建已知在这些领域之一存在瓶颈的软件时,是否存在使用一种优于另一种的常见情况?