multithreading - 线程和 CPU 亲和性

标签 multithreading processor affinity

假设一台机器上有两个处理器。线程 A 在 P1 上运行,线程 B 在 P2 上运行。

线程 A 调用 Sleep(10000);
是否有可能当线程 A 再次开始执行时,它在 P2 上运行?

如果是,谁来决定这种转变?如果没有,为什么不呢?

处理器是否存储了它正在运行的所有线程的一些数据,或者操作系统将每个线程绑定(bind)到处理器的整个生命周期?

最佳答案

有可能的。这将由操作系统进程调度程序确定,也可能取决于正在运行的应用程序。除了缓存中的任何信息之外,处理器不会保留有关先前运行的线程的信息。

关于multithreading - 线程和 CPU 亲和性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847432/

相关文章:

c++ - 当 Execute() 在 C++ Builder 中终止时,不调用 OnTerminate() 方法

c++ - 是什么让 C++ 程序只能是 64 位或受机器限制?

c - 如何在 Linux 中为 C 或 C++ 的进程设置 CPU 亲和性?

Java 管道输入/输出流通信中存在大量延迟

multithreading - Bash有线程产量吗?

multithreading - log4net - LogicalThreadContext - 和单元测试用例

Linux查找超线程核心id

c++ - C++ 或 ANSI C 所用的周期数?

java - 获取内部 TypeElement 的类名和注解处理器

c++ - 如何防止子派生进程继承 CPU 亲和性?