A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余尚勇 中级黑马   /  2013-5-13 00:34  /  1833 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 余尚勇 于 2013-5-24 11:29 编辑

所有进程使用一个共享的线程池,还是每个进程使用独立的线程池?

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

8 个回复

倒序浏览
.NET框架为每一个进程提供了一个线程池,使应用程序能够根据需要来有效地利用多个线程。
回复 使用道具 举报

每个进程都有一个线程池,一个Process中只能有一个实例,它在各个应用程序域(AppDomain)是共享的,
.Net2.0 中默认线程池的大小为工作线程25个,IO线程1000个,有一个比较普遍的误解是线程池中会有1000个线程等着你去取,
其实不然, ThreadPool仅仅保留相当少的线程,保留的线程可以用SetMinThread这个方法来设置,
当程序的某个地方需要创建一个线程来完成工作时,而线程池中又没有空闲线程时,线程池就会负责创建这个线程,并且在调用完毕后,不会 立刻销毁,而是把他放在池子里,预备下次使用。
同时如果线程超过一定时间没有被使用,线程池将会回收线程,所以线程池里存在的线程数实际是个动态的过程
回复 使用道具 举报
每个进程一个线程池,进程的所有应用程序域共享同一个线程池。
回复 使用道具 举报
建议你去看 http://blog.csdn.net/yizhu2000/article/details/2022264#tp2
回复 使用道具 举报
当然是后者了
回复 使用道具 举报
337091921 发表于 2013-5-13 01:12
每个进程都有一个线程池,一个Process中只能有一个实例,它在各个应用程序域(AppDomain)是共享的,
.Net2 ...

谢谢,理解了
回复 使用道具 举报
mosuge7 发表于 2013-5-13 01:03
.NET框架为每一个进程提供了一个线程池,使应用程序能够根据需要来有效地利用多个线程。 ...

谢谢解答
回复 使用道具 举报
337091921 发表于 2013-5-13 01:12
每个进程都有一个线程池,一个Process中只能有一个实例,它在各个应用程序域(AppDomain)是共享的,
.Net2 ...

谢谢帮助
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马