如果我的机器上有 X 个核心并且我启动 X 个线程。为了便于论证,我们假设每个线程在其使用的内存、硬盘等方面是完全分离的。操作系统是否知道将每个线程发送到一个核心,或者在一个核心上为多个线程进行更多时间切片。 问题归结为,如果我有 X 个核心,并且我的程序必须进行独立计算,我是否应该启动 X 个线程,它们是否会分别通过管道传输到一个核心,或者假设因为我有 X 个核心,所以我可以启动 X线程完全错误?我想是的。 这是用 C# 实现的 --
最佳答案
我要说不...
.NET 团队推出了 TPL显式委托(delegate)线程执行以利用多个核心。 Windows Vista 没有内置太多智能来支持操作系统将线程委派给多个内核。考虑到 Windows 7 对多核的支持有了很大改进,我对 .NET Framework(4.0) 中的这种改进并不感到惊讶。
关于.net - 线程和核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908035/