理论上,似乎单个机器上可以有多个线程池,但.Net框架每台机器只有一个线程池,即使机器有多个处理器也是如此。 这句话是真的吗?
更新1:
根据Tim的评论,答案是每个进程都会有一个.Net线程池。因此,如果在一台计算机上运行多个进程,则该计算机上可以存在多个.Net线程池。
答案 0 :(得分:6)
每个进程都有一个线程池。从.NET开始 框架4,进程的线程池的默认大小取决于 有几个因素,例如虚拟地址空间的大小。一个 进程可以调用GetMaxThreads方法来确定数量 线程。可以通过更改线程池中的线程数 使用SetMaxThreads方法。
Source(empthasis mine)
线程池提供配置"容器",例如,您可能希望控制特定应用程序或服务可用的线程数。
...即使机器有多个处理器
核心数确实会影响线程池默认值,但它并不限制可以创建的线程池数。