《并发哲学:从编程入道到开悟升天》1.2从现代争霸看并发能力重要性
从现代争霸看并发能力重要性
如果你仔细阅读了第一小节,相信你一定会被深深的震撼。没想到并发思想伴随人类进化,并赋予人类强大,这是冥冥之中赋予人类的力量。
我们的视角从远古走向现代,从一个小游戏走向实打实的战场,看看新时代的弄潮儿用强大的并发能力打败原住民,是一番怎样的景象。
机会与高薪
如果你是互联网技术求职者,你一定对并发这个字眼再熟悉不过。铺天盖地的培训班广告,都在试图教会人们如何掌握自己所熟悉语言的高并发实践,学有所成的人们,享受的是一半甚至翻倍的工资涨幅。互联网时代的互联网公司,掌握并发处理能力是一项基础素质,熟练运用高并发架构与实践成为了少数派的功夫,也是制胜法宝。
如何理解并发,如何掌握并发,如何运用并发———实践到生活,到切实的编程任务,并发能力成为了多少程序员苦苦追寻的果实。从百度知道到知乎,从博客园到CSDN,随处可见解释高并发,实践高并发,理解基础并发等一系列相关的内容。
更或者,也许并发这个字眼对你来说还较为陌生,但作为并发的一个子集——并行,对应于计算的应用你一定有所耳闻,那就是大数据。云计算、大数据、人工智能,面对海量数据的冲击,利用并发与并行,成为了大大小小浪潮中冲浪者的必由解决方案。
即便你还不明白什么是并发,什么是并行,看着招聘广告上对并发能力的要求,看着行业内对大数据等名词讨论的火热,目睹着身边的人挂着并发的字眼走向高薪,走向你认为是光明的未来。尽管你听到的只是两个字,一个词,我相信,无论如何你也能够明白,“并发”代表着机会与高薪。
顶不住就是死
选人的经验是依靠血淋淋的历史来铺垫的。
企业愿意为理解、掌握并发/高并发能力的人才开出高薪,他们不是傻子,因为这个时代的浪潮王者,已经用亲身肉搏告诉了后来人,这样的能力是多么重要。
淘宝双十一,每一年都是一座新高峰,不只是交易金额的再创新高,更是流量的连年洪峰,淘宝是否能抗住当年双十一的流量,用户体验是否会受到影响,人们的支付安全、商家与消费者的利益能否稳定持续得到保障,全国上下无论是消费双方,还是技术人员,都在关心。双十一某种程度就代表着全中国电商处理并发思想与实践水准的风向标。用户侧看到的是马云与张勇的自豪与兴奋,看到的是国家的繁荣昌盛与阿里巴巴的蓬勃发展,却可能很难看到背后阿里人的压力,与压力下的架构演进。
即使你不懂计算机,看着从寥寥可数的几个框与圈,走向立体、复杂的架构,从第一次,到第十四次,你也应该能体会到在流量的冲击下阿里人是如何顶住压力,持续做架构优化,守护住淘宝从渺小走向博大。淘宝只是各类APP、网站、软件、系统的一个缩影,你也许还听说过马化腾因为害怕QQ顶不住一千人同时在线而睡不着觉,也听说过12306从人人喊打走向稳如老铁的传奇。
新浪潮的里程碑,顶得住并发就是老大,顶不住并发就成为历史。
自有先人来
淘宝的架构师们有信心得出最佳实践,先人们功不可没。
无论是电商网站,还是社交网站,又或者是搜索网站,互联网时代与网站这个词终究是脱不了干系。即便人们的重心从台式机走向笔记本,又从笔记本走向了手机,还是未来的VR设备,网站的概念,也是深入人心。
既然是这个时代的标志,自然也有属于这个标志的传奇。很显然,这次的传奇又一次与并发扯上了关系。
Nginx,一个由俄国人开发的开源程序,就是在这个时代网站及其一系列门户入口的首选。在中国大陆,使用nginx网站用户有:字节跳动、美团、百度、滴滴、京东、新浪、网易、腾讯、阿里巴巴等等等等,加上无法罗列的各类大中小公司,可以说,几乎所有!为什么?Nginx他开源,见底可靠;他轻量,运行无负担;更重要的是,他快,快的像一个多面手,作为一款高性能的HTTP和反向代理web服务器,他无法提升用户的网速,但却可以快速的将用户发来的请求分发给其他处理的程序,这一顶就是至少数万的量级!
可能非计算机相关人士对这样的能力优势无法直观的感受,但我们可以对比。在Nginx之前,这个时代网站服务器软件的主流叫apache,对于这样同时分发处理的能力,nginx是apache的10倍有余。
都是软件,十倍的“多面手”处理能力,这不说替代太难!
这Nginx多面处理的辉煌,得要感谢作者为他选择了epoll和kqueue两大并发处理框架作为开发模型。
并发,又是并发,这个时代的变革者总是高高的举起他!
走向核心
Nginx的作者起初并未料想到Nginx会获得今天如此巨大的成功,当初只是为了缓解俄罗斯第二大网站访问压力而诞生的软件,就成了业界的标杆,并发与高并发的代名词。
至少在Nginx作者年轻的那个年代,来自现代编程人员必备工具——个人电脑,已经完全成型并极具规模。他们可能也很少有人愿意再深入探究笔记本内部发生的一切,和这一切背后的历史。
但他肯定知道Intel,存储、人工智能、网络设备,芯片与处理器领域的霸主,时代前沿的灯塔。
CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件,我相信你一定听过。对于个人电脑而言,CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。在提高CPU计算能力的过程中,Intel利用了一种叫做流水线的技术,它对提高CPU的效率产生了显著作用。就像流水生产在汽车制造业中一样,流水线技术对处理器的发展影响可谓深远。
流水线是Intel首次在486芯片中开始使用的。作为未来的巨人,Intel即便在当时还在与摩托罗拉等同为芯片公司打的正酣,也依然明白需要持续自我驱动,进行技术革新。对于处理器,就是更好,更快,更强。
486又称i486处理器,是Intel非常成功的商业项目。这不但归功于其集成的125万个晶体管,高达100Mhz的时钟频率,更在创造性的使用了流水线技术,将CPU的处理过程分为多个部分,分立处理,部分之间互相任务分配,从逻辑上打破串行。
即便受限于基本计算机科学,最终在CPU的一个核心上一个时间点内依然只有一件事情得到处理,但这样的逻辑分割,立即带来了不止一倍的性能提升,更别再说日后超线程、多核等新技术雨后春笋喷薄而出的时代。
Intel在提升并发上下了创新性的功夫,吃到了甜头,奠定了今后的霸主地位。
计算机科学
百度百科介绍:并发是计算机术语。
那我们自然还要从处理器时代回到计算机时代的刀耕火种。那时的人们还不知道集成电路,看不清智能计算的未来。一条纸带,打满孔洞,就像八音盒一般,一点点将触发逻辑串联,激发着电信号,闪烁着智慧的光芒。
这样的过程,更加直白一点的表述是下面的光景:程序员通过编写程序将内容写到纸上,接着打孔成卡片,再将卡片转移给操作室的操作员,并将卡片的内容输入到计算机上,等到计算机计算完成后,会将结果打印到打印机上进行输出,操作员拿到输出结果送到输入室,程序员就可以从输出室得到具体的计算结果。如此往复,这就是那个时代的刀耕火种。
房间里,机器边,男男女女面对任务面面相觑。人们揣摩着纸带,似乎又回想起了遥远的过去,拿着石头和长矛,准备一起从狮子嘴里抢猎物的日子。
并发***的原点,这个时代一切传奇的起源。传奇的案例你听完了,我们将在第四章接着说原点的故事……