【发布时间】:2022-11-09 21:18:27
【问题描述】:
Brian Goetz 让我对 Loom 项目感到兴奋,为了充分理解它,我需要对现状进行一些澄清。
我的理解如下: 目前,为了有真正的并行性,我们需要每个 cpu/core 有一个线程; 1)在n核机器上拥有n+1个线程有什么意义吗? Project Loom 将通过依赖 jvm 在 JVM 内部的虚拟线程上执行任务,为我们带来几乎无限的线程/纤维。 2)这真的是平行的吗? 3)具体而言,这与上述场景“n 核机器上的 n+1 个线程”有何不同?
谢谢你的时间。
【问题讨论】:
-
n+1 通常假设一个线程会因为 IO 而停止,而另一个线程可以使用原本浪费的资源,因为 CPU 和 IO 任务都被合并了。如果将它们分开,则 m:n 可以工作,但您必须意识到并积极分开这些任务
-
Project loom 试图带来并发性,而不是并行性。并行性解决了一项任务,分布在多个线程上。并发意味着多个任务竞争相同的资源。
标签: parallel-processing project-loom