gpt4 book ai didi

multithreading - TPL 中的最大任务数?

转载 作者:行者123 更新时间:2023-12-04 10:57:45 30 4
gpt4 key购买 nike

我想在 Windows Azure 上的工作进程中使用 TPL。我希望在队列中添加一个 IJob,它有一个 Run 方法,因此工作线程将包括:

循环 将项目从队列中取出 使用TPL调用IJob.Run,​​这是一个异步调用

但我有点担心我可以添加到 TPL 的最大项目数?如果需要的话,我很乐意构建自己的某种 TPL 池,只需检查它的功能。

干杯, Ember 。

最佳答案

TPL 的主要目标之一是消除对此的担忧。通过将您的工作分解为任务而不是线程,您可以让调度程序更适本地处理此任务的平衡。

您可以安排的“任务”数量没有固定的上限。它们(默认情况下,使用默认的 TaskScheduler)使用 ThreadPool 进行调度,从 .NET 4 开始,ThreadPool 根据工作进行扩展。我强烈建议不要尝试建立自己的池 - 你不太可能比默认的池做得更好。话虽这么说,如果您的任务有非常不标准的行为,您可能需要考虑编写自定义 TaskScheduler。

此外 - 认识到理想情况下,您应该让您的任务“尽可能大”。与单个任务相关的开销 - 与适当数量的较大“任务”相比,它们太小(就工作而言)将导致开销对性能产生更大的影响。

关于multithreading - TPL 中的最大任务数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740495/

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