社区
C#
帖子详情
Thread类的线程和线程池ThreadPool中的线程哪个速度更快?
NameForMain
2006-10-24 02:38:05
Thread类的线程和线程池ThreadPool中的线程哪个速度更快?
...全文
979
25
打赏
收藏
Thread类的线程和线程池ThreadPool中的线程哪个速度更快?
Thread类的线程和线程池ThreadPool中的线程哪个速度更快?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
25 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
打赏红包
superbug1984
2006-10-25
打赏
举报
回复
线程池个人觉得比较在调用时比较方便
单独线程适合长线任务
halfstudio
2006-10-25
打赏
举报
回复
试试看不是知道了
bartholomew
2006-10-25
打赏
举报
回复
晕~
楼主的公司怎么没连csdn也禁了啊……
http://9q.blogspot.com/2006/10/dotnet_22.html
线程池在应用程序资源的调配与处理上,做了一些优化,如果只是需要简单的多开几个线程来同时处理数据,而且每个线程的执行时间都很短,用线程池是一个不错的选择。
但是,如果每个子线程的执行时间很长,而总的需要处理的数据量很巨大,导致主线程又在不断的开启新的线程,个人感觉线程池不是一个很好的选择。
我曾经有过这样的经历,感觉线程池用在这种情况下的话,一方面是速度好像总有一定的限制,虽然可以更改线程池中的最大线程数,但总是不能自由的增加(当然是在硬件能够承受范围以内的),无法达到我想要的速度;另一方面我总怀疑是不是等待的线程过多时,线程池会自动砍掉一些线程,造成数据的丢失(当然,只是怀疑)。
所以,我采用了自己控制线程数的办法,设定一个参数作为线程总数的上限值,当程序当前进程中的线程总数超过设定值的时候,则等待一段时间再开启新的线程。这样的话,速度是上去了,也未发现造成数据的丢失。
以上只是我个人的看法,仅供大家参考,大家有什么新的观点欢迎交流!我也会继续在实践中关注这方面的内容~
Atwind
2006-10-25
打赏
举报
回复
好个,这个东东不错的说~
xiaoxiaren
2006-10-25
打赏
举报
回复
感觉线程池,管理起来方便吧。可重复利用性好。
NameForMain
2006-10-24
打赏
举报
回复
谢谢楼上的指教。
aafshzj
2006-10-24
打赏
举报
回复
不仅仅是节约了创建一条线程的时间,而且节约了线程资源。
vosov
2006-10-24
打赏
举报
回复
线程的招募和遣散都是很耗资源的。如果有很多线程需要运行最好用线程池
NameForMain
2006-10-24
打赏
举报
回复
也就是说节约了创建一条线程的时间?
aafshzj
2006-10-24
打赏
举报
回复
“不用真的创建一个线程”这一句没看到吗?
NameForMain
2006-10-24
打赏
举报
回复
就是因为代码少一些么?
aafshzj
2006-10-24
打赏
举报
回复
使用线程池中的好处就是节约,呵呵。不用真的创建一个线程,代码也稍微少一点。
NameForMain
2006-10-24
打赏
举报
回复
使用线程池中的线程的好处呢?
NameForMain
2006-10-24
打赏
举报
回复
楼上的,麻烦你把内容贴过来。
因为公司限制访问网络,
你那个网站无法访问。
bartholomew
2006-10-24
打赏
举报
回复
http://9q.blogspot.com/2006/10/dotnet_22.html
aafshzj
2006-10-24
打赏
举报
回复
直线条并不是说完全没有循环哦什么的,强调一下,避免误解。
aafshzj
2006-10-24
打赏
举报
回复
线程池任务一般都是迅速完成并且“直线前进”的,也就是不需要等待事件,不需要等待时间,只是直线条的完成一个任务,然后就over。这样的就适合放入线程池。
aafshzj
2006-10-24
打赏
举报
回复
不是说了吗:一个短期任务就用线程池,一个守护或长期工作线程就用独立线程。
BSC
2006-10-24
打赏
举报
回复
mark
NameForMain
2006-10-24
打赏
举报
回复
怎么没有人指教啊?
加载更多回复(5)
相关推荐
Thread
线程
和
Thread
Pool
线程
池
Thread
:我们可以开启一个
线程
Thread
线程
和
Thread
Pool
线程
池
Thread
:我们可以开启一个
线程
。但是请大家记住:
线程
开启会在空间和时间上有不小的开销。所以,不能随便开。
Thread
Pool
:会根据你的CPU的核心数开启一个最合适的
线程
数量。如果你操作
中
,非常耗时,就不要用
线程
池
。
Thread
与
Thread
Pool
的区别
我们可以通过
Thread
类
,一次使用一个
线程
,来创建和删除
线程
。这种方式建立和删除
线程
是很昂贵的(cpu密集型)。所以,CLR包含一个内置的
线程
池
,供应用程序使用。这个
线程
池
可以通过
Thread
Pool
类
访问。
Thread
Pool
类
会在
线程
的托管池
中
重用已有的
线程
。使用完
线程
后,
线程
就会返回
线程
池
,供以后使用。
Thread
Pool
有25个可用的
线程
(每个处理器)。 使用Threa
C#
中
Thread
与
Thread
Pool
的比较
我们可以通过
Thread
类
,一次使用一个
线程
,来创建和删除
线程
。这种方式建立和删除
线程
是很昂贵的(cpu密集型)。所以,CLR包含一个内置的
线程
池
,供应用程序使用。这个
线程
池
可以通过
Thread
Pool
类
访问。
Thread
Pool
类
会在
线程
的托管池
中
重用已有的
线程
。使用完
线程
后,
线程
就会返回
线程
池
,供以后使用。
Thread
Pool
有25个可用的
线程
(每个处理器)。使用
Thread
Poo
thread
pool
和Queue
线程
池
可以看作容纳
线程
的容器,一个应用程序最多只能有一个
线程
池
。
Thread
Pool
中
的
线程
不用手动开始,也不能手动取消,你要做的只是把工作函数排入
线程
池
,剩下的工作将由系统自动完成,也就是说我们不能控制
线程
池
中
的
线程
。如果想对
线程
进行更多的控制,那就不适合使用
线程
池
。在以下情况
中
不宜使用
Thread
Pool
类
而应该使用单独的
Thread
类
: 1.
线程
执行需要很长时间; 2.需要为...
Thread
and
Thread
Pool
C#
中
Thread
与
Thread
Pool
的比较
Thread
类
,一次使用一个
线程
,来创建和删除
线程
。这种方式建立和删除
线程
是很昂贵的(cpu密集型)。
Thread
pool
类
对于大多数的情况下是使用与对系统控制比较少的情况下 ,不管是
线程
的创建暂停和删除都是系统自动完成的。 CLR包含一个内置的
线程
池
,供应用程序使用。这个
线程
池
可以通过
Thread
Pool
类
访问。 Threa...
发帖
C#
C#
.NET技术 C#
复制链接
扫一扫
10.8w+
社区成员
64.2w+
社区内容
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2006-10-24 02:38
社区公告
让您成为最强悍的C#开发者