C#中Parallel.Invoke()是创建新线程还是使用线程池线程?
Parallel.Invoke() 是创建新线程还是使用线程池线程?
Parallel.Invoke() 不会为每个传入的方法创建新线程,它默认使用线程池中的线程来执行任务。
.NET 里的 Parallel 类(包括 Invoke、For、ForEach 这类方法)都是基于 TPL(任务并行库)实现的。TPL 会根据当前系统的 CPU 核心数量、运行时负载等情况,自动调度线程池中的线程来处理并行任务——这么做的目的是避免无限制创建新线程导致的系统资源耗尽问题,让线程复用更高效。
需要注意的是:如果你在传入 Parallel.Invoke() 的方法内部手动创建了新线程,那属于你自己的代码逻辑行为,和 Parallel.Invoke() 本身的线程调度无关。
内容的提问来源于stack exchange,提问作者user19177594
相关产品推荐
相关产品推荐

