gpt4 book ai didi

c# - Parallel.ForEach 是否限制事件线程的数量?

转载 作者:IT王子 更新时间:2023-10-29 03:35:55 28 4
gpt4 key购买 nike

给定这段代码:

var arrayStrings = new string[1000];
Parallel.ForEach<string>(arrayStrings, someString =>
{
DoSomething(someString);
});

所有 1000 个线程会几乎同时产生吗?

最佳答案

不,它不会启动 1000 个线程 - 是的,它会限制使用的线程数。 Parallel Extensions 使用适当数量的核心,具体取决于您实际拥有的数量有多少已经处于忙碌状态。它为每个核心分配工作,然后使用一种称为工作窃取的技术让每个线程高效地处理自己的队列,并且只在真正需要时才需要进行任何昂贵的跨线程访问。

看看 PFX Team Blog用于负载有关它如何分配工作和各种其他主题的信息。

请注意,在某些情况下,您也可以指定所需的并行度。

关于c# - Parallel.ForEach 是否限制事件线程的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1114317/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com