采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请求大仙个问题,章节6-4,时间11:30,提到多线程因为不能降低CPU占用率所以不能提高GC吞吐量。为什么呢?如果多核并行执行,单核占用率不变,但任务被分到多个核进行,多核同时进行GC,整体效率就会提高吧?这样不算提高GC吞吐量吗
阿姆达定律,
比如你有1000个工作要做, 800个可以并发, 200个不可以并发。
现在你有10个CPU去执行,那么800个可以并发的工作, 就被并发做。 但是并发做, 需要消耗额外的工作量,比如拆分任务、合并结果。
但是无论如何,1000份工作,都必须去做。 所以并发是节省了时间,但是并没有降低工作量,反而使得工作量上升。 从时间上,是快了,工作量没有下降,多了拆分任务、合并结果的时间。
所以从整体考虑,并发是为了延迟,还有单位时间的吞吐量。 通常的,不并发的算法当然工作量少,只不过执行慢。
应该说的是阿姆达尔定律吧。 这个有一个公式。 情况是计算资源不变,那么实际产生价值的并行计算占比越高,性能越好。而过多的线程会带来线程切换等cpu操作,占用更多的计算资源,从而降低并行计算占比,进而降低整体性能。
所以,我的理解,这里的吞吐量,实际就是阿姆达尔定律的表现。
登录后可查看更多问答,登录/注册
深度剖析大厂面试高频真题,让你秒变offer收割机
1.5k 6
1.1k 11
1.0k 10
761 10
822 8