关于Dotnet中的线程池
线程池在应用程序资源的调配与处理上,做了一些优化,如果只是需要简单的多开几个线程来同时处理数据,而且每个线程的执行时间都很短,用线程池是一个不错的选择。
但是,如果每个子线程的执行时间很长,而总的需要处理的数据量很巨大,导致主线程又在不断的开启新的线程,个人感觉线程池不是一个很好的选择。
我
曾经有过这样的经历,感觉线程池用在这种情况下的话,一方面是速度好像总有一定的限制,
虽然可以更改线程池中的最大线程数,但总是不能自由的增加(当然是在硬件能够承受范围以内的),无法达到我想要的速度;另一方面我总怀疑是不是等待的线程
过多时,线程池会自动砍掉一些线程,造成数据的丢失(当然,只是怀疑)。
所以,我采用了自己控制线程数的办法,设定一个参数作为线程总数的上限值,当程序当前进程中的线程总数超过设定值的时候,则等待一段时间再开启新的线程。这样的话,速度是上去了,也未发现造成数据的丢失。
以上只是我个人的看法,仅供大家参考,大家有什么新的观点欢迎交流!我也会继续在实践中关注这方面的内容~
posted on 2006-10-28 11:00 bartholomew 阅读(433) 评论(2) 编辑 收藏 举报