multithreading - 多线程线程 vs 并行性,它们是如何不同的?

  显示原文与译文双语对照的内容
104 4

线程和并行性的区别是什么?

哪一个比另一个有优势?

时间:原作者:0个回答

146 3

Daniel ( 我以前的同事) - 线程/并发 vs 并行文章解释了所有内容。

引用:

为了利用软件中的多个核心,最终线程必须被使用。正因为如此,一些开发人员陷入了将多线程等同于并行化的陷阱。这不是准确的。"。"。你可以以在单核计算机上具有多线程,但只能在多核机器上使用并行。

快速测试:如果在你使用线程的单个核心计算机上,它对你的场景非常有意义。

原作者:
113 1

并行是一种使用多个指令流完成计算的通用技术。所有并行技术的关键方面是在流之间进行通信以协作最终答案。

线程是并行的具体实现。每个指令流都是自己的堆栈,用于记录局部变量和函数调用,并隐式地与它的他流通信。

一个例子可能是让一个线程简单地排队磁盘请求并将它传递给工作线程,有效地并行化磁盘和 CPU 。传统的UNIX管道方法是将这些代码分成两个完整的程序,例如"cat"和grep中的命令:

cat/var/log/Xorg.0.log | grep"EE"

线程可以减少从 cat 进程复制磁盘 I/O 到grep进程的通信成本。

原作者:
...