Rem*_*Rem 5 c# dependency-injection asp.net-core
ASP.NET Core 管道是否通过多线程处理请求?如果是,您如何配置线程数?而且,单例服务是否应该是线程安全的?
上面的评论中已经回答了第一个问题(查看KestrelServerOptions)
关于线程安全,答案在文档中:
单例生命周期服务在第一次被请求时创建(或者当 ConfigureServices 运行时,如果你在那里指定一个实例),然后每个后续请求都将使用相同的实例。如果您的应用程序需要单例行为,建议允许服务容器管理服务的生命周期,而不是实现单例设计模式并自己在类中管理对象的生命周期。
这意味着对服务的所有请求都拉同一个对象,这意味着没有每个线程的对象,因此没有线程安全。
线程安全
单例服务需要是线程安全的。如果单例服务依赖于瞬态服务,则瞬态服务可能还需要是线程安全的,具体取决于单例如何使用它。
再清楚不过了。由于对象不是按线程创建的,因此默认情况下它们不是线程安全的(尽管某些服务可能被设计为如此)。
| 归档时间: |
|
| 查看次数: |
3997 次 |
| 最近记录: |