(假设我有 10 个核心)
当我写的时候:
Parallel.For(0, 100, (i,state) =>
{
Console.WriteLine(i);
});
问题:
每个核心分配数量的公式是什么? (是吗100/10
?)
在执行点,每个核心是否已经知道将处理哪些数字?或者它是否每次消耗一个新的数字[0..100]
存储库(让我们暂时忽略块或范围)?
The i
参数 - 它是否指的是0..100
索引还是每个线程及其“要处理”数字中的相对索引?
它没有记录。工作任务可能会从共享工作池中检查工作块。可能他们一次获取的项目少于 10 个,因为获取 10 个项目将导致在临近结束时正在工作的线程少于 10 个。Parallel.For
手术。单个慢速线程可能会造成顺序瓶颈,因为它可能是唯一仍在运行的线程。最好将工作划分为较小的块,以便此类瓶颈变得更小。
我不知道。我很确定人们必须使用 Reflector 来撬出这些信息。
它指的是全局索引,因此您可以使用它来访问共享列表或其他内容。每一个i
您的工作代表所见过的将是独一无二的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)