1、今天

今天豪兄和晓冰两个生日,oh,凌晨了,是昨天才对,哈哈。刚打完火锅吃了蛋糕。

有这么一群朋友真好,吃什么都说恶心、说不好吃,刚好,都给我吃了,娃哈哈。

有这么一群朋友这好,无所顾忌,说说笑笑,关系简单。其实这里想特指的是晓冰和永仪,关系简单,没有暧昧,能说道笑的异性朋友。当然,和猪哥等损友也从一般朋友变得无所不谈。

刚清洁完,冲了凉,又趁着头发还没干写点什么。

哎呀,前天和馥馥说以后11点就要按时睡觉,今晚又熬夜了。不过也有特殊的情况嘛,馥馥原谅我哈。

2、论“理论的重要性”

这个星期的主要工作是做自动检测和下载更新,于是第一时间浮现出来的关键字:服务、线程、检测、一次、跳过、断点续传、多线程,从啊头那里还得到了两个:进程,aidl。(噢,对了,我做的是安卓开发哦。)

然而一开始,给我脑海的第一感觉就是多线程下载肯定比单线程快。为什么?能更充分利用网络资源(这个我现在都不知道我当时怎么想出来的,当然,这个答案是错的),还有就是网友们都这么说。

但我竟然没有想到,服务器的带宽是对于用户来说是贡献的,服务器是按用户连接数来分配带宽的,如果服务器把一条线程当作一个用户,那么多开线程,就可以模拟多个用户,就可以分配多些带宽进行下载。这个就是多线程下载能加速的原理。

然而,当我再次重温这个知识点的时候,它就在我脑海中浮现了出来,我之前有学过这方面的知识,没错,就是在高中的时候(高中时候对计算机兴趣浓厚,喜欢看计算机的书和资料)。但我这次竟然没有想到,原因是什么?我给我自己的答案是,理论基础不扎实,少把实质体现和理论相结合思考(下面会提到)。

接着,我就做了多线程的下载,测试结果就是,单线程比多线程还要快,并且,手机还会没那么卡。
见图:

那为什么我做的单线程比双线程还要快呢?这下,我没有谷歌没有百度,静静地思考其中。

答案就是,我做的是自己的应用更新下载,而不是下载器,我不用和其他的下载器抢资源,所有连接到这个服务器去下载这个apk的,都是通过我这个程序去实现下载,那么,我还有必要去实现多线程去抢带宽吗?貌似已经没有了这个需要。如果实现多线程,那会发生什么事情呢?假设只有我一个人连接服务器,但我实现了双线程,服务器就会把我当成两个用户,然后把带宽平分给我这两条线程,但,真的做得了平分?这其中必然会有损耗。(这是我自己想的,这下应该没大问题了吧?如果有的话还望高人指点)。

所以,如果没有理论,就要自己用时间去实践来验证这其中的真理。这过期其实也有得有舍,得的是自己验证了一次原理,舍的是时间,这又体现一个人在某一时间阶段的价值观问题。

最后决定用单线程实现。

3、谈空想

空想,好像形容得有点不恰当,但想不到第二个词语了,就用这个吧。

空想,我这里的空想指的是刚才上面说到:实质的体现和理论相结合思考。

通常,在功能或效果实现之前,空想的用处,往往是在搭建思路。

而在功能或效果实现之后,或者修改别人的功能和效果的时候,往往能起到重构和发现bug的作用。

其实还不止,空想不但能给你带来对项目的贡献,空想多了,理论的知识会相结合,更加巩固。空想出来的又实践了,会再次验证原理的所在。这对后续的思维发展起了辅助的作用。

但,只会空想,而不会实践是不行的。粤语有句顺口溜:讲就天下无敌,做就有心无力。这种人,我们不能做。

4、最近

最近下班回去接触的新技术比较多,也在看37signals(现已改名为Basecamp)出品的《rework》,想法也比较多,side project的idea也比较多,一个个mark下来,一个个去实现。

呼!头发也干了,就写到这里吧。服务器维护,没有网络,明天再push。明天跟猪哥去烧烤蹭吃蹭喝。晚安。


钟白兔
336 声望15 粉丝

你的过去我来不及参与。