完成了ThreadPool的测试了

博主完成了ThreadPool的测试,对比了线程池与不使用线程池的多线程、单线程的性能。结果显示,任务较多时线程池性能更优;少量大任务时多线程更简单合理,但线程池抗变化、抗阻塞能力更强。测试证明线程池效率可行,但并非适用于所有场景。
我想我已经完成了ThreadPool的测试了, 测试的代码和初始结果看这里,后来又做了一次更加详细一点的测试, 结果看这里

我想结论已经很明显了,相对于不使用线程池的多线程来说,如果任务比较多,根本就是鸡蛋碰石头,性能相差非常的明显!(当然是线程池比较优秀啦。)当然,对于非常少量的大任务而言,多线程也许更简单,也更合理。但是性能差别还是不大的,除了一点:由于任务持续时间长,必然占用线程池有限的线程数量,可能造成无法展开其他任务。此外,我刚刚考虑到一点——如何中断线程池的任务呢?这个问题需要考虑一下。

相对于单线程来说,只要任务压力足够,线程池的管理和调度的消耗就会填平,甚至还有一定的优势存在。此外,由于多个线程存在,压榨了其他一些实际上并不是很必要的线程的CPU时间。换句话说,线程池拥有比单线程要好的抗变化、抗阻塞能力。比如说很简单的,如果突然有一些磁盘IO操作,可以看到对线程池的影响要比单线程要小。而且这里的测试,仅仅是纯数学意义上面的计算,不应该有任何的缓冲不命中、猜测转移错误等阻塞,更不会有IO操作阻塞。因此,使用线程池应该有比较好的前景。

当然,也有人会有一些担心,我想这些担心我也知道,我会仔细考虑的。正如我的某一个Post回复所说的,这个测试的目的是证明线程池在效率上面是可以的,而不是证明线程池就一定能够应用到所有地方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值