gpt4 book ai didi

c# - 限制每个类的线程

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:35 24 4
gpt4 key购买 nike

我有一个 .NET web 应用程序,它针对每个请求从一组多个 API 向其中一个 api 发送请求(要命中哪个 api 取决于请求类型),获取响应,处理它并返回响应.

A brief overview of the architecture

假设在任何给定的时间点,假设我们最多有 100 个线程,我们得到 100 个请求(假设每个线程分别处理一个请求) 请求需要转到 API-1 并且 API-1 的响应时间突然增加,然后我们得到后续请求需要转到 API-2,3 ... n 并且所有这些 API 都运行良好。在一个线程从处理 API-1 中解放出来之前,不会提供对这些 API 的请求,这会导致.NET Web 应用程序的整体性能影响。

我想要实现的是,我想限制每个 API 的线程数(假设我们为每个 api 都有一个具有某些方法的类),这样每个类都不会超过分配给它的最大线程数.

(如果我有 n 个类和 100 个线程,我应该可以将它们分成每个 100/n 个线程池)

我尝试了 few links对于线程池,但无法达到我想要的效果。

最佳答案

您的应用程序可能是异步编程模型的良好目标,如果使用得当,可以消除阻塞线程停机问题。

C# 中的异步编程是一个广泛讨论的话题。检查以下资源:

如果确实需要,您仍然可以像往常一样限制 ThreadPool 线程( worker )的数量。参见 Using TPL how do I set a max threadpool size关于 StackOverflow 的讨论。

关于c# - 限制每个类的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49914414/

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