我一直在阅读线程池。许多网站都说线程池中默认的最大线程数是25(每个处理器)。但是我没有修改最大线程,当我这样做时:线程池中的线程
Threadpool.GetAvailableThreads(out WorkThreads,out compPortThreads);
我得到500,1000。我正在运行双核心电脑,所以不会期望超过50个。
我真的有500,1000在我的池?
感谢 约翰
我一直在阅读线程池。许多网站都说线程池中默认的最大线程数是25(每个处理器)。但是我没有修改最大线程,当我这样做时:线程池中的线程
Threadpool.GetAvailableThreads(out WorkThreads,out compPortThreads);
我得到500,1000。我正在运行双核心电脑,所以不会期望超过50个。
我真的有500,1000在我的池?
感谢 约翰
这已更改版本之间:
从the documentation of the ThreadPool class in Visual Studio 2005:
有每个进程一个线程池。线程池的每个可用处理器的默认大小为25个线程。
从the documentation of the ThreadPool class in Visual Studio 2010:
有每个进程一个线程池。线程池的默认大小为每个可用处理器250个工作线程,以及1000个I/O完成线程。
作为一个有趣的边注:对于Visual Studio 2008中,English documentation承诺250个工作线程,而German translation只给你25啊,车翻译的乐趣...
每个处理器的线程默认数量有不同的版本之间显著改变。
相信在运行时获得的值。
有每个进程一个线程池。 线程池的默认大小为 250个工作线程每个可用的 处理器和1000个I/O完成 线程。
该方法返回可以启动的线程数,而不是当前正在运行的线程数。你读到的有关25是最大值的信息已经过时了。我不确定哪个版本,但是线程池限制显着增加,以避免死锁问题,主要是由于开发人员不知道他们在做什么,恕我直言。