.NET之间线程的.NET移动

mph*_*air 9 .net multithreading multicore

跟进来自多核用法,线程,线程池的问题.

线程在生命周期内是否从一个核心移动到另一个核心?

当然.想象一下,您在双核系统上运行了三个线程.向我展示一个公平的时间表,不涉及在核心之间定期移动线程.

这是我第一次访问这个网站,所以我没有足够的代表发表评论.我决定只提出一个新问题,引用我想评论的问题.

选择要移动线程的核心的过程是什么?它是否像调度程序有一个需要处理时间的线程列表,当一个完成时它会放入另一个?

另外,我想知道是否存在线程在核心之间移动的语句的引用.还是仅仅被认为是"普通知识"?

谢谢!

Isa*_*avo 6

它不像线程生活在特定的核心上,而是一个移动到另一个核心的过程.

操作系统只有一个准备执行的线程(和/或进程)列表,并将它们分配给恰好可用的任何核心/ CPU.

也就是说,任何智能调度程序都会尝试尽可能地将线程安排在同一个内核上 - 只是为了提高性能(数据更可能在该内核的缓存中等).