00:00
B站的各位小伙伴大家好,下面我们为大家介绍guc并发编程与源码分析的第二章线程基础知识复习,那么这一章是承上启下的一章,既对大家以前学习过的多线程的知识进行一个简单的复习和串讲,因为大家后续学习深度知识铺平道路,打好基础,复习串讲一下我们对多线程的了解和概念的原理级别的理解。好,那么首先我们本次课程是。Guc,那么大家呢,也不能免俗,先跟着杨哥来拜拜神,倒个立。我们大家都清楚,所谓的guc是指并发包他所使用的一些技术。那这三个包的本尊和原作者是谁呢?就是道个立这位大神,那么大家可以看一下,他呢,是在J阿瓦江湖界的地位是非常高啊,相当牛的一个大神,那么是美国纽约州立大学奥斯维格分校的老师,也是他们计算机科学系的,相当于。
01:01
扫地僧那样的感觉,那么他呢,之前呢,觉得呢,Java在JAVA5以前吧,对并发支持的不太好。提了很多意见,那么这个时候呢,Java社区的也邀请他说那要不you can you up,你行你来啊,那倒个立呢,也不跟他们废话,直接呢提着键盘就上阵编出了我们今天所学的震惊天下的并发包,为Java程序带来了极大的方便,也为Java语言的生态丰富做出了极大的贡献,所以说道格力是值得我们尊敬的好。那么闲聊完成以后,我们下面请看一下为什么学习注意并用好多线程技术极其重要,那么从方方面面,软件硬件面试。都要给大家进行介绍,那么当然有一利就有一弊,我们多线程技术又有哪些毛病呢?我们大家呢,两害相衡取其轻,尽量用它的优点屏蔽它的缺点。好首先从硬件方面,那么对于计算机相关专业的同学,应该听说个定理叫摩尔定理,那么它这个讲的是什么意思呢?
02:10
他呢是英特尔的创始人,那么一说到英特尔都明白哪个硬件肯定是CPU,那么对于哥德摩尔,他提出来他的意思呢,大概就是说。每过18~24个月。我们的。集成电路上它能容纳的元器件,就是那些晶体管,就会增加一倍,那么相当于说它的性能也会提升一倍,那么导致这个CPU呢,也会上面的晶体管呢越排越多,越来越复杂,也即一美元你所能买到的电脑性能。大致每两年就会翻一番,那么这个呢,是信息技术一个神速的进步,那么大家思考一下,你们现在用的CPU是不是慢慢的也从I3 i5i7对吧,越升越快,但是呢,从2003年开始,CPU的主频已经不再翻倍了啊,它有其极限,它在CPU那么方寸之地,它的这些元器件和晶体管,它是布满的,数量是有限的,所以说我们慢慢的对于一颗CPU的使用已经压榨到了极致,不得不采用什么。
03:12
多核,也就是说各位小伙伴,你们在任务管理器打开性能,这都会看到你的。内核和逻辑处理器应该不会是一了,以现在电脑硬件的标配,所以说大家都是进入了多核时代,也为了更好的利用我们的计算机CPU的资源。所以说我们在。主频不再提高。摩尔定理也已经失效,核数但是在不断增加的情况下。我们想要让程序更快,你就必须要用到并行或者并发编程,这是硬件所逼着你必须要掌握高并发多先生技术的一种趋势,你掌握它以后,你将获得更多的优势。好,那么接下来我们来看一下,那么软件从技术方面呢?当然哈,呃,如果面试当中,我相信面试官也一定会跟你聊高并发多线程的技术,你的逼格是不是可以高这么一点点,对吧?那么除此之外,我们可以充分利用多核的处理器提高程序的并发性。
04:11
它的高并发系统几乎就是什么用程序压榨CPU的性能,那么你想现在在座各位都是八核了,一件事一个人去干,一件事八个人去干,那么人多力量大,CPU多也强悍,对吧?那么又可以提高程序的吞吐量对吧?异步啊,回调啊等等的生产需求,用我们的多线程高频发技术将获得良好的性能,但是反过来讲啊,有一利必有一弊,多线程这么好,也不是一点毛病都没有,那么要大家要注意。第一个。最重要的线程安全问题。对于我们单机版。这个程序只跑在一台机器上,一个CPU上面的时候,大家都清楚爱加加没什么问题,但是如果你现在进入到了多核高并发多线程的环境,如果你稍有Java基础,都听说过多线程里面有卖票的案例,对于这样的A加加是非原子操作的,它是一定会出现。
05:07
重票、错票和漏票,甚至是负数的,那么对于集合类你是否安全?那么答案我相信如果有过工作经验的同学一定明白现场的安全性问题有多么的严重,那么除此之外还有线程中所相关的,我们都清楚Java当中为了保证线程安全,你可以加个SNCH,但是这么是一个重量级锁,你的性能问题又怎么提升呢?那么有没有了解过什么叫偏向锁,什么叫轻量锁?哎,尤其这个锁如果加的不好,是不是长期?控锁不当,获得不到锁的话,是不是容易导致死锁呀,所以说我们在这儿就会清楚。从硬件和未来软件趋势发展要求方面,高并发多线程一定会让你掌握GC这门技术,但是对于它的弊端,那么请大家也要学会规避和了解,千万不要写出死守的程序。所以说这个就是为什么我们要学好用好我们的。
06:05
高并发多线程相关的技术,OK?
我来说两句