漫话:为什么你下载小电影的时候进度总是卡在99%就不动了?

商务办公
1896 年,波兰经济学家 Karol Adamiecki发明了一种叫做harmonogram(波兰语,时间表)的图表;同一时间,亨利·甘特(Henry Gantt)提出类似的方法并在西方普及。Adamiecki的图表就被叫做为甘特图。

 

进度条

其实,早在计算机发明之前,就已经有了进度条的概念。1896 年,波兰经济学家 Karol Adamiecki发明了一种叫做harmonogram(波兰语,时间表)的图表;同一时间,亨利·甘特(Henry Gantt)提出类似的方法并在西方普及。Adamiecki的图表就被叫做为甘特图。

后来,计算机出现,甘特图这个概念后来被用于计算领域。主要用来计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间等,一般以长方形条状显示。

人类史上的第一个在计算机中进度条,出现在 Mitchell Model 1979 年的博士论文。Model 使用进度条来表达电脑执行任务的进度,这也是我们现在常看到的进度条。

计算机领域中引入进度条,主要是通过图形化的形式告知用户计算机正在努力工作中,试想下,如果没有进度条,那么用户就无法知道程序是处理中,还是失去了响应。也无法知道程序处理的大概进展。

所以,进度条更多的是为了满足用户心理,缓解用户焦虑而设计。

但是,计算机中显示的进度条其实并不是真正的进度,而是预估出来的。通常的计算方式是:

操作数量/总操作数量=进度条百分比

比如我们进行文件拷贝,当文件总大小事100M的时候,计算机可以根据已经拷贝的文件大小和时间,预估出文件全部拷贝完需要的总时长,然后就可以根据已用时长和总时长的对比,计算出进度了。

99%的时候在干什么?

我们在《如何给女朋友解释什么是P2P?》中其实介绍过,现在的下载软件都是采用P2P技术进行文件下载的。

在P2P模式下,当我们想要下载一个电影的时候,并不是从一个资源处串行下载的。而是会从多个P2P节点上分别多线程的进行下载,然后再把下载后的资源整合到一起。

这个过程就像我们组装电脑一样,我们同时从不同的店铺购买不同的电脑配件,然后自己组装电脑。

但是,我们知道 ,由于受到发货地、发货时间、物流等影响,所有配件的到达时间肯定不是一样的。有一些会先到达,有一些会后到达。

所以,如果有一些配件先到达的时候,我们就需要继续等到后到达的配件。

如果我们组装一个电脑需要100个配件,其中99个已经到达了,但是最后一个由于库存原因还未发货,那么,整体电脑组装的进度应该就是99%,并且这个99%的状态还会维持很长一段时间。

所以,因为采用P2P的下载方式,文件从多个节点下载,由于从各个节点下载的速度不一致,有些节点的资源会相较于其他资源慢一些,就会出现进度卡在99%的情况。

另外,除了以上这种原因以外,还有一种情况。

那就是我们已经收到了所有的电脑配件,开始组装的时候,发现其中有一个配件出现了问题,运输过程中有损坏,这时候我们就需要联系商家进行换货。这个过程电脑组装的整体进度也会卡在99%。

所以,因为资源进行分块下载,在下载的最后阶段,就需要进行组合及校验,而在校验时发现某块出现问题,就需要重新下载。这个过程进度也会一直卡在99%。

关于作者:漫话编程,是一个通过漫画+音频的形式讲解枯燥的编程知识的公众号。致力于让编程变得更有乐趣。

 

责任编辑:武晓燕 来源: 漫话编程
相关推荐

2020-01-18 14:42:03

编程科技开发

2024-03-21 16:49:01

Java22版本开发

2017-01-09 12:57:21

Linux

2021-03-05 18:36:59

日志Jar包代码

2022-10-10 12:07:49

造车新能源Web3

2015-12-03 10:09:31

赌场大数据

2022-09-19 00:08:22

人工智能机器交通管制

2021-02-16 00:33:56

Python语言工具

2020-05-13 09:03:14

Python开发代码

2011-01-17 11:58:20

职场

2018-04-25 08:24:55

AI手机人工智能

2018-08-20 07:54:15

AI算法数据

2018-05-08 06:51:02

2020-06-02 14:17:55

QWER排列键盘打印机

2020-08-31 14:56:24

补码存储数据

2014-08-15 11:07:09

程序员

2018-05-07 15:30:13

数据治理分析数据集

2019-05-23 09:50:46

大数据IT人工智能

2018-07-10 10:50:03

数字体验数字性能数字体验管理

2018-05-07 10:32:40

数据分析
点赞
收藏

51CTO技术栈公众号