这个答案(https://stackoverflow.com/a/6000891/197229)提供了关于现代.Net线程池(https://learn.microsoft.com/en-us/dotnet/api/system.threading.threadpool?view=netcore-3.1)的有趣信息。
从.NET框架4开始,进程线程池的默认大小取决于几个因素,例如虚拟地址空间的大小。进程可以调用GetMaxThreads方法来确定线程数。可以使用SetMaxThreads方法更改线程池中的线程数。每个线程使用默认堆栈大小,并按默认优先级运行。
我的应用程序将与其他几个应用程序一起运行在应用服务器上。在自动分配线程池大小时,.Net是否完全分别对待每个应用程序,如果不是,我应该这样做吗?我的想法是,如果每个进程都有25个线程池,那么就会有很多线程吗?
发布于 2020-06-08 14:09:48
我的想法是如果10个进程都有25个线程池
这是正确的,每个应用程序都有自己的托管线程池。
,有很多线程吗?
实际上,一个典型的系统在任何时候都会有数千个线程,而且大多数线程都将处于休眠状态。睡眠线程除了考虑唤醒(计时器、套接字选择、粗同步(如互斥)之外,不使用任何资源。
https://stackoverflow.com/questions/62263908
复制相似问题