黑马程序员技术交流社区

标题: 一个线程的问题 [打印本页]

作者: 余尚勇    时间: 2013-5-13 00:34
标题: 一个线程的问题
本帖最后由 余尚勇 于 2013-5-24 11:29 编辑

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


作者: mosuge7    时间: 2013-5-13 01:03
.NET框架为每一个进程提供了一个线程池,使应用程序能够根据需要来有效地利用多个线程。
作者: 337091921    时间: 2013-5-13 01:12

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

作者: 王宝生    时间: 2013-5-13 07:36
每个进程一个线程池,进程的所有应用程序域共享同一个线程池。
作者: 许大虾    时间: 2013-5-13 09:48
建议你去看 http://blog.csdn.net/yizhu2000/article/details/2022264#tp2
作者: 王明明1004    时间: 2013-5-13 13:35
当然是后者了
作者: 余尚勇    时间: 2013-5-14 10:16
337091921 发表于 2013-5-13 01:12
每个进程都有一个线程池,一个Process中只能有一个实例,它在各个应用程序域(AppDomain)是共享的,
.Net2 ...

谢谢,理解了
作者: 余尚勇    时间: 2013-5-14 10:17
mosuge7 发表于 2013-5-13 01:03
.NET框架为每一个进程提供了一个线程池,使应用程序能够根据需要来有效地利用多个线程。 ...

谢谢解答
作者: 余尚勇    时间: 2013-5-16 10:53
337091921 发表于 2013-5-13 01:12
每个进程都有一个线程池,一个Process中只能有一个实例,它在各个应用程序域(AppDomain)是共享的,
.Net2 ...

谢谢帮助




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2