我的世界java下载慢怎么办_漫话:为什么你下载小电影的时候进度总是卡在99%就不动了?...

923164c3289bc52be7a26fd2498d55eb.png 2ce51cf967378374113b6557240ffe7b.png 65bde60c91678e9714c0a683a6f74f82.png c6640d997a84944dc307f978c1c37926.png 51e918bf6c71e35008d2a670ec13908b.png 2b6f5641aee2d617930e9b241e10100f.png 9381f1f2a712e0d978bd668df938281b.png 进度条 其实,早在计算机发明之前,就已经有了进度条的概念。1896 年,波兰经济学家 Karol Adamiecki发明了一种叫做harmonogram(波兰语,时间表)的图表;同一时间,亨利·甘特(Henry Gantt)提出类似的方法并在西方普及。Adamiecki的图表就被叫做为甘特图
ee8fd0ea6af6fc791277a41aea975996.png
后来,计算机出现,甘特图这个概念后来被用于计算领域。主要用来计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间等,一般以长方形条状显示。 人类史上的第一个在计算机中进度条,出现在 Mitchell Model 1979 年的博士论文。Model 使用进度条来表达电脑执行任务的进度,这也是我们现在常看到的进度条。 计算机领域中引入进度条,主要是通过图形化的形式告知用户计算机正在努力工作中,试想下,如果没有进度条,那么用户就无法知道程序是处理中,还是失去了响应。也无法知道程序处理的大概进展。
43f5dcb60dcb36e3120d0281b3e4ad9a.png
所以,进度条更多的是为了满足用户心理,缓解用户焦虑而设计。 但是,计算机中显示的进度条其实并不是真正的进度,而是预估出来的。通常的计算方式是:
操作数量/总操作数量=进度条百分比
比如我们进行文件拷贝,当文件总大小事100M的时候,计算机可以根据已经拷贝的文件大小和时间,预估出文件全部拷贝完需要的总时长,然后就可以根据已用时长和总时长的对比,计算出进度了。
0ffc941dc0a4a5d14e42bb4163fc48d9.png
283f5c19b3c944e65964acbff6558563.png 01ab1178f663d1b79b74384e231bd9b1.png 3ccbc19dfccaef436a0367c268c37c58.png 1405253002bb5f8f7852c37352a2dea3.png 346d814df0f8a8ec4d89cb2628eb99ce.png 99%的时候在干什么? 我们在 《如何给女朋友解释什么是P2P?》 中其实介绍过,现在的下载软件都是采用P2P技术进行文件下载的。 在P2P模式下,当我们想要下载一个电影的时候,并不是从一个资源处串行下载的。而是会从多个P2P节点上分别多线程的进行下载,然后再把下载后的资源整合到一起。 这个过程就像我们组装电脑一样,我们同时从不同的店铺购买不同的电脑配件,然后自己组装电脑。
c289b9a91a934c4aa597ad01bcc62f63.png
但是,我们知道 ,由于受到发货地、发货时间、物流等影响,所有配件的到达时间肯定不是一样的。有一些会先到达,有一些会后到达。 所以,如果有一些配件先到达的时候,我们就需要继续等到后到达的配件。 如果我们组装一个电脑需要100个配件,其中99个已经到达了,但是最后一个由于库存原因还未发货,那么,整体电脑组装的进度应该就是99%,并且这个99%的状态还会维持很长一段时间。
8616934ac4790be0827dbde1cf00a44d.png
所以,因为采用P2P的下载方式,文件从多个节点下载,由于从各个节点下载的速度不一致,有些节点的资源会相较于其他资源慢一些,就会出现进度卡在99%的情况。 d81e1b2545d0a3e91ccdc343804e32fd.png 3c565c356e638e4789ff0d1728559deb.png 656d9c7062cd6480230272bb4b0671d5.png 另外,除了以上这种原因以外,还有一种情况。 那就是我们已经收到了所有的电脑配件,开始组装的时候,发现其中有一个配件出现了问题,运输过程中有损坏,这时候我们就需要联系商家进行换货。这个过程电脑组装的整体进度也会卡在99%。
667a8d2070f8cb8496b8f86f2847edd0.gif
所以,因为资源进行分块下载,在下载的最后阶段,就需要进行组合及校验,而在校验时发现某块出现问题,就需要重新下载。这个过程进度也会一直卡在99%。 0026f531a4a2bd68ff73682146d71ef3.png c9a930aa6c606197a02b5d2ab0c4e7b9.png 8553e4c93526ff00fc56d6813b450b5e.png 2f9b6ed66cc8d0135fb2698cefd7dbfa.png 关于作者漫话编程,是一个通过漫画+音频的形式讲解枯燥的编程知识的公众号。致力于让编程变得更有乐趣。 60ca7691573801fc507e59d212795684.gifJava工程师成神之路系列文章在 GitHub 更新中,欢迎关注,欢迎star。 6dc45ded47b85ba795ca1c7c2314e777.png

直面Java第311期:什么是运行时常量池?

深入并发第013期:拓展synchronized——锁优化

- MORE | 更多精彩文章 - 刘强东“退位”,东哥的"兄弟们"怎么办?| 文末送书GitHub上12kStar的《Java工程师成神之路》中终于开放阅读了!一口气说出4种“附近的人”实现方式,面试官笑了一次蚂蚁金服的辛酸面试历程如果你喜欢本文,请长按二维码,关注 Hollis.a92a17fd7ca7b494e54cb053cb585463.png转发至朋友圈,是对我最大的支持。好文章,我在看❤️
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值