.net - 线程和核心

标签 .net multithreading multicore

如果我的机器上有 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/

相关文章:

Python MD5 哈希计算更快

java - 单线程在多核处理器上的数据可见性

c# - Razor动态表创建c#

android - 使用套接字将图像从 .Net 服务器发送到 Android 客户端

android - 如何在 Android 多线程程序中停止 looper.loop()?

c++ - Boost::Asio 同步客户端超时

.net - 如何在单元测试中比较复杂对象作为 C# 中的结构

c# - Windows 窗体在执行中抛出与视觉样式相关的异常

python - 异步: run one function threaded with multiple requests from websocket clients

java - 用非函数式语言编写函数式程序