赞
踩
操作数量/总操作数量=进度条百分比
比如我们进行文件拷贝,当文件总大小事100M的时候,计算机可以根据已经拷贝的文件大小和时间,预估出文件全部拷贝完需要的总时长,然后就可以根据已用时长和总时长的对比,计算出进度了。
99%的时候在干什么?
我们在
《如何给女朋友解释什么是P2P?》
中其实介绍过,现在的下载软件都是采用P2P技术进行文件下载的。
在P2P模式下,当我们想要下载一个电影的时候,并不是从一个资源处串行下载的。而是会从多个P2P节点上分别多线程的进行下载,然后再把下载后的资源整合到一起。
这个过程就像我们组装电脑一样,我们同时从不同的店铺购买不同的电脑配件,然后自己组装电脑。
但是,我们知道 ,由于受到发货地、发货时间、物流等影响,所有配件的到达时间肯定不是一样的。有一些会先到达,有一些会后到达。
所以,如果有一些配件先到达的时候,我们就需要继续等到后到达的配件。
如果我们组装一个电脑需要100个配件,其中99个已经到达了,但是最后一个由于库存原因还未发货,那么,整体电脑组装的进度应该就是99%,并且这个99%的状态还会维持很长一段时间。
所以,因为采用P2P的下载方式,文件从多个节点下载,由于从各个节点下载的速度不一致,有些节点的资源会相较于其他资源慢一些,就会出现进度卡在99%的情况。
另外,除了以上这种原因以外,还有一种情况。
那就是我们已经收到了所有的电脑配件,开始组装的时候,发现其中有一个配件出现了问题,运输过程中有损坏,这时候我们就需要联系商家进行换货。这个过程电脑组装的整体进度也会卡在99%。
所以,因为资源进行分块下载,在下载的最后阶段,就需要进行组合及校验,而在校验时发现某块出现问题,就需要重新下载。这个过程进度也会一直卡在99%。
关于作者:漫话编程,是一个通过漫画+音频的形式讲解枯燥的编程知识的公众号。致力于让编程变得更有乐趣。
Java工程师成神之路系列文章在 GitHub 更新中,欢迎关注,欢迎star。
直面Java第311期:什么是运行时常量池?
深入并发第013期:拓展synchronized——锁优化
- MORE | 更多精彩文章 - 刘强东“退位”,东哥的"兄弟们"怎么办?| 文末送书GitHub上12kStar的《Java工程师成神之路》中终于开放阅读了!一口气说出4种“附近的人”实现方式,面试官笑了一次蚂蚁金服的辛酸面试历程如果你喜欢本文,请长按二维码,关注 Hollis.转发至朋友圈,是对我最大的支持。好文章,我在看❤️赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。