最近,我混淆了理解概念:多线程、并发和并行。为了减少混乱,我试图组织我对这些的理解并得出我的结论。我的问题是,
,下面的结论是否有误解或错误?
我的参考资料可以找到这里。
1.并发性和并行性是分类的不同层次。
它既不是并行的,也不是并行的。它要么是并发的,要么是并行的,或者不是并行的。
例如,
2.并行性不是并发性的子集。
3.线程或多线程与并发性和并行性有何关系?
线程的定义澄清了这一点。线程是“执行流的单位”。这个“执行流”可以由调度程序独立管理,调度程序通常是操作系统的一部分。
和,
和,
4.多线程是并发的还是并行的?
详细的描述将是非常感谢的。
发布于 2022-05-17 14:42:40
平行性指的是单个应用程序可以使用比单个CPU所能提供的更多的计算硬件的任何系统。有许多不同类型的并行计算体系结构,但是当人们说“并行性”时,他们经常谈论的是一种.
...A 对称MultiProcessing (SMP) system是一台具有一个内存系统和两个或多个传统CPU的计算机,它们具有相同的访问权限。大多数现代工作站、大多数移动设备和许多服务器系统*都是SMP。
多线程是计算.**的一个模型--计算机科学家可能会告诉您,当两个线程执行的操作顺序不是严格由程序本身决定时,它们就会同时运行。软件开发人员更有可能说,两个线程在两个线程都已启动且两个线程都没有完成时,彼此并行运行。
在运行在SMP系统上的应用程序中实现并行性的一种方法是使用多个并发线程。
*有些服务器是努马,这是SMP的近亲。在NUMA系统中,CPU都访问相同的内存系统,就像在SMP中一样,只不过每个CPU“拥有”物理内存空间的一部分,并且它可以比访问其他CPU拥有的内存位置更快地访问自己的内存位置。
**还有其他并行计算模式。有些产品,如https://en.wikipedia.org/wiki/Actor_model,用于生产软件中。其他则主要是学术上的兴趣。
https://stackoverflow.com/questions/72270177
复制相似问题