首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于多线程、并发性和并行性

关于多线程、并发性和并行性
EN

Stack Overflow用户
提问于 2022-05-17 07:57:28
回答 1查看 198关注 0票数 1

最近,我混淆了理解概念:多线程、并发和并行。为了减少混乱,我试图组织我对这些的理解并得出我的结论。我的问题是,

,下面的结论是否有误解或错误?

我的参考资料可以找到这里

1.并发性和并行性是分类的不同层次。

它既不是并行的,也不是并行的。它要么是并发的,要么是并行的,或者不是并行的。

例如,

  • 非并发(顺序)/非并行
  • 非并发(顺序)/并行
  • 并行/非并行
  • 并行/并行

2.并行性不是并发性的子集。

3.线程或多线程与并发性和并行性有何关系?

线程的定义澄清了这一点。线程是“执行流的单位”。这个“执行流”可以由调度程序独立管理,调度程序通常是操作系统的一部分。

  • 拥有线程意味着有一个执行流单元。
  • 具有多个线程(多线程)意味着具有多个执行流单元。

和,

  • 具有多个执行流单元的具有多个正在执行的,这是并发性的定义。

和,

  • 在单核硬件环境下,通过时间切片来完成多个执行流单元。
  • 在多核硬件环境下并行完成多个执行流单元。

4.多线程是并发的还是并行的?

  • 多线程,或者具有多个执行流单元,是并发的。
  • 多线程本身就是具有多个执行流的单元。这与并行性无关。
  • 操作系统如何处理多个执行流单元与并行性有关。
  • 并行是通过操作系统和硬件环境来实现的。
  • “代码可以并发,但不能并行。”(并行性意味着并发,但不是相反的,对吧?,stackexchange)

详细的描述将是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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,用于生产软件中。其他则主要是学术上的兴趣。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72270177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档