AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1869418
Accepted
albin
albin
Asked: 2025-01-06 23:22:45 +0800 CST2025-01-06 23:22:45 +0800 CST 2025-01-06 23:22:45 +0800 CST

硬件多线程导致并发而不是并行——为什么会这样?

  • 772

这是我在计算机技术课程中一次旧的考试:

对还是错?硬件多线程导致并发而不是并行。

根据答案,答案是“正确”。

但是,我很困惑为什么。课程对并行性的定义如下:

“并行性是指同时做(执行)许多事情。并行性可以从硬件的角度来看待。”

(没有给出更详细的解释)。

我可能对硬件多线程的工作原理或并行性的定义感到困惑。我以为硬件多线程是通过使用多发射处理器实现的,主要是因为这张幻灯片 :

这是否意味着来自同一线程(以及多线程中来自不同线程)的多条指令可以同时运行,从而导致同时执行不同的事情?

parallel-processing
  • 1 1 个回答
  • 58 Views

1 个回答

  • Voted
  1. Best Answer
    Pai-to
    2025-01-07T01:24:38+08:002025-01-07T01:24:38+08:00

    我认为你需要回去阅读课程笔记,而不是考试题,因为笔记会提供背景和含义。

    通常,并行是指指令级并行,而并发是指并发进程或线程,而不是指令。

    这意味着,如果只有“并行”和“并发”这两个词,那么它们就会失去很大一部分含义,因为这些词的字典定义在含义上有一些粗略的相似性。

    现代处理器核心确实具有大量指令级并行性,因为它们被设计为超标量无序执行引擎。它们在核心内有多个执行单元,还有一个调度程序,可以确定数据依赖性,因此如果这些指令不依赖于彼此的结果,则可以同时执行多个指令。例如,如果您有一条指令将值 A 和 B 相加,另一条指令将值 C 和 D 相加,那么这些指令可以并行执行。

    但这不会改变向CPU 核心提供指令流的线程或进程所看到的内容。当线程看到执行的指令时,它们实际上已被重新排列回其原始顺序。就核心外的线程而言,指令流的输入和输出是相同的。所有并行性都发生在“后台”。

    但是,处理器上的多个线程不允许您将单个进程分解为多个并行指令流,除非程序员完成工作。

    多线程允许您同时(即同时)运行两个指令流。它不允许处理器随意将一个程序线程拆分为两个单独的流,这是核心内的并行性所为,因为它比线程拥有更多关于当前和即将到来的状态信息的即时信息。

    程序员可以将自己的程序分成单独的线程,这再次使他们能够更好地利用并发,但这要求他们知道可以将哪些工作分成每个并发线程并采取相应的行动。

    • 2

相关问题

  • 递归循环的并行处理和执行顺序

  • PowerShell:脚本并行抛出

  • 带等待的顺序并行

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve