Cod*_*aks 7 parallel-processing task-parallel-library .net-core
我有一个带有 8 个逻辑处理器的 corei7 处理器。
我正在尝试使用 parallel.For 在 dotnet core 2.2 中运行并行任务。当我测量开始时间时,有 9 个任务并行启动。不是应该只有8个吗?
下面你可以看到:
i => [ThreadId],[ProcessorNumber] == starttime - endtime
并行任务结果
您可以并行运行任意数量的任务,但处理器只有 8 个逻辑内核来同时处理 8 个线程。其余的总是排队等待轮到他们。
因此,如果您有 16 个并行进程,每个进程需要 200 毫秒来运行,那么您将并行运行进程 1-8 200 毫秒,然后并行运行 9-16 进程 200 毫秒,总计 400 毫秒。如果您有 4 个逻辑核心,您将并行运行进程 1-4、5-8、9-12、13-16,总共耗时 800 毫秒。
| 归档时间: |
|
| 查看次数: |
1775 次 |
| 最近记录: |