bartholomew

如此星辰非昨夜,为谁风露立中宵~

关于Dotnet中的线程池

线程池在应用程序资源的调配与处理上,做了一些优化,如果只是需要简单的多开几个线程来同时处理数据,而且每个线程的执行时间都很短,用线程池是一个不错的选择。

但是,如果每个子线程的执行时间很长,而总的需要处理的数据量很巨大,导致主线程又在不断的开启新的线程,个人感觉线程池不是一个很好的选择。

我 曾经有过这样的经历,感觉线程池用在这种情况下的话,一方面是速度好像总有一定的限制, 虽然可以更改线程池中的最大线程数,但总是不能自由的增加(当然是在硬件能够承受范围以内的),无法达到我想要的速度;另一方面我总怀疑是不是等待的线程 过多时,线程池会自动砍掉一些线程,造成数据的丢失(当然,只是怀疑)。

所以,我采用了自己控制线程数的办法,设定一个参数作为线程总数的上限值,当程序当前进程中的线程总数超过设定值的时候,则等待一段时间再开启新的线程。这样的话,速度是上去了,也未发现造成数据的丢失。

以上只是我个人的看法,仅供大家参考,大家有什么新的观点欢迎交流!我也会继续在实践中关注这方面的内容~

posted on 2006-10-28 11:00  bartholomew  阅读(433)  评论(2编辑  收藏  举报

导航