摩尔线程,moerxiancheng( 二 )


以上说明不是那么好理解,为了加以说明,我们来看下面的形象解释 。形象的解释处理器中的核心和线程我们可以把处理器想象成是一个业务处理中心,比如银行,线程数就相当于开通了几个窗口,处理器核心就相当于是窗口中的柜员,窗口和柜员越多,可以同时办理的业务就越多,相应的速度就会越快 。正常情况下,一个窗口对应着一个柜员,而超线程技术就相当于一个柜员管理着两个窗口,使用左右手同时办理两个窗口的业务,这样就大大的提高了核心的使用效率,增加业务办理速度 。
什么样的业务场景适合用多线程,请举例?

摩尔线程,moerxiancheng


首先了解下什么是多线程吧!多线程就是“人海战术”,伴随着摩尔定律的失效(单核心的计算能力不能再成倍的增长,而改为横向扩展),CPU变为了多核心的模式,而每一个CPU在同一时间能处理一个线程,也就是说同一时间线程的执行数可以为CPU核心数(超线程不讨论)!效率为以前单核心的N倍!JAVA这门编程语言,可谓是让多线程技术变得老生常谈,那么多线程使用在什么地方呢?1,web服务器:web服务器的请求数往往是非常大的,而且自从有了HTTP1.1之后,TCP默认是长连接模式,一般像tomcat这样的服务器会开多个线程保持与客户端的连接,所以需要多线程!2,异步调用:比如电商平台,在主线程处理完订单等主业务之后,需要发短信,邮件等非主要的业务代码,这个时候可以新起一个线程,异步调用,而主线程可以直接返回,避免长时间的等待!3,上传下载大文件处理:比如迅雷,如果是单线程,那么同一时候,它就只能写一个下载任务的数据,但是多线程就可以同时进行更多任务!4,分布式计算:比如1 2 ... 100000,你可以分为十个任务,然后汇总即可,比单线程可以省大约9/10的时间!还有更多场景可以适用于多线程环境,具体问题具体分析!但是多线程其实绝对是魔鬼,从jdk中的并发包就可见端倪,不管是synchronize,lock,threadlocal,线程池,countbatchdown,forkjoin,future,callable,valatile哪一个多线程的关键字,都可以让我们JAVA编程人员生不如死!只能说不到万不得已,不要盲目的使用多线程,比如redis就能靠着单线程一枝独秀,linux之父Linus Tonvard说过:忘掉那该死的并发吧!可见这个多线程多么的不可取,只是如果我们JAVA程序员如果不会多线程,应该就失业了吧!反正不管多线程有多痛苦,以后我还是会发多线程的技术分享的,敬请关注! 。
现在芯片已经接近原子级了,芯片想要有重大突破,需要向什么方向发展?
随着芯片技术更新换代,各个公司紧锣密鼓的开发集成度高,能耗更低,功能更多,运行更快的新技术,但是随之而来的就是不断高涨的研发成本和人力物力的消耗 。就拿中国来说,为什么我们可以渐渐追赶上发达国家,一个是得益于国家的稳定发展和中国人的聪明才智,还有一个重要原因就是摩尔定律的天花板到来了 。创业阶段,一穷二白的时候各个方面都是欠缺的,发展是迅速的,可以借用各种现成的工具努力追赶,谁都是老师,而到了稳定时期增长率会越来越低,因为人的能力到达一个峰值就会出现瓶颈,老师越来越少,所有团队都会遇到这个问题,需要自己去创新的路越来越多,这无疑降低了进步的速度 。
所以芯片的发展应该是朝着更加智能化的Ai方向进发,本人是做物理科技的,感觉数控加工精度已经很难再有大的突破了,不由联想到芯片的技术,如今所谓的芯片制程也是越来越接近物理极限,在不远的将来,芯片智能化一定是大势所趋,依靠指令的精简与智能化,还有结构的大突破,才可以更加优化运行速度,节省功耗 。事实上ARM的成功就,就是得益于在精简指令集RISC的石破天惊,才解决了如今手机的大发展,无论是人体运动还是电子元件都已经到了一个无法获得巨大突破的阶段,而需求还在巨量增长,无论是中国还是发达国家有一个趋势就是开始采取了封闭的态度,不能做到技术共享,这将大大提高研发与应用的成本,最终想要有大的飞跃,技术联合才是出路,确立一个统一的开放的基准 。

推荐阅读