我有一个树数据结构,其中每个兄弟姐妹都可以并行处理。目前我创建了一个单独的任务来处理每个孩子。这是天真吗,一旦树具有给定的大小/深度,它会损害性能吗?还是 CLR 旨在处理任意负载的任务,因为它们没有绑定到特定的操作系统线程?!
1 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
这个问题的重要答案是肯定的。但是为了完全理解它,您必须更深入地研究任务,看看您的任务是长期运行的任务还是短期运行的任务。
第二个链接包含您问题的答案,但为您总结一下:
默认情况下,任务是短期运行的。这是什么意思:
任务将在线程池中创建。如果您的任务将执行会消耗大量时间的工作,这意味着长时间运行- 您应该避免在线程池中创建任务,因为它会用越来越多的任务填充您的线程池并最终会溢出,让我们调用它,线程池。
长时间运行意味着任务将在线程池之外的单个线程上创建,它可以使用TaskCreationOptions Enumeration定义:
TaskCreationOptions.LongRunning
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消