multithreading - 线程和 CPU 亲和性

标签 multithreading processor affinity

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

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

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

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

最佳答案

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

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

相关文章:

java - 即使定义了超时,Postgres JDBC 线程仍停留在 java.net.SocketInputStream.socketRead0 上

c - 测试 "pthread_create"功能行为

c++ - 如何同时启动两个线程函数不同的线程组?

multithreading - 单核处理器上的单线程与多线程编程

linux - 是否可以在 OS X 中设置 pthread CPU affinity?

python - 仅计算大图中局部邻域的亲和性的有效方法

c++ - 不稳定的单例成员?

assembly - 编程语言如何存储数组

assembly - 多个 nop 指令并不总是比单个 nop 指令花费更长的时间

linux - 线程亲和性与进程亲和性