multithreading - CPU线程和程序线程有什么区别

标签 multithreading cpu

例如 i5 7600k 有 4 个线程,但游戏可以有超过 4 个线程。有什么区别以及为什么它们具有相同的名称?

最佳答案

具有 4 个线程的 CPU(实际上是具有 4 核的 CPU,或者可能是具有超线程的 2 核 CPU)可以同时执行 4 个单独的线程。一个程序可以拥有比这更多的线程,但在任何给定时间只有 4 个线程可以执行 - 其他线程在等待 CPU 可用时将处于 sleep /等待状态。

当线程数量超过给定时间可以执行的数量时,CPU 如何“变得可用”供其他线程使用,这是操作系统调度程序的功能。操作系统调度程序定期(通常每隔几毫秒)轮换线程打开和关闭 CPU,以便每个想要执行的线程最终都能轮流使用 CPU。

还有更多内容,但希望这能涵盖您问题的要点。

关于multithreading - CPU线程和程序线程有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53327066/

相关文章:

c# - GPU 与 CPU、环境和图形处理

memory - 如何在 Chrome 中打开许多选项卡但卸载/禁用非事件/非当前选项卡,释放内存和 CPU?

c - C 中 POSIX 线程的并行 I/O

c++ - 多线程合并排序的奇怪结果

c++ - 如何使共享值在没有互斥锁的情况下保持一致?

android - 无法启动 Genymotion 虚拟设备,CPU 不兼容

Java:多线程

java - 线程怎么可能已经启动了?

c - 如何优化图像像素化程序

python - 如何修复此脚本,使其不会占用 CPU?