00:00
好,那各位同学,那接下来我们来继续再完成,不保证原子性相关知识的演变和提升,那注意啊。GMM的内存模型要不要保证原子线是要求的,那完了,它是不保证的,所以说它是个轻量级,何为轻量级?就是乞丐吧。讲过了。那么。杨哥不废话。怎么解决原子线?起码兄弟你给我的这个活,我们现在要求你一跑了以后干嘛。最后的值必须得是2万吧。好,那么第一种方法解决最简单,我们干嘛,是不是加。但是说过了,不要刷机用牛刀,不许高射炮打蚊子,我们既要又要,功能加性能都要满足,那么这个时候。
01:01
咋地?那么。开工我们搂一眼,不要忘了杨哥在前面的GUUC课程当中给大家介绍过一种总统。这个东西目前同学们都用过,请看这个是叫GUUC下面的奥米是原子线,那么来干嘛?想都不用想。这个是不是叫inter,那么沿下是不是是不是带原子。包装的整形类啊,整形包装类,那么二话不说,那么兄弟们。开高,那么咋咋解决呢?现在我们那。往上翻。这个时候注意。那么呢?Integer,那么来吧。Integer等于6INTEGER,那么呢,干嘛?Look直接翻源码。
02:01
说过了,创建一个新的原子类,伴随着初始值,你要是里面括号里面什么都不写,默认值是多少?那么这个时候是不是相当于这个奥米克,就相当于我们这个number。同学们,这一步OK吧,那么沿下去就是这个就是什么带原子性的。Number加加那么好。来。构造方法不写就是零,写了是多少多少对吧。那么沿下直线我们呢。前面讲过,详细的讲过,讲过这些方法,请参看杨哥的视频,GOUC那个版本。那么再次强调,我已经给大家讲过这句话了。这个干嘛,杨哥是详细给大家讲过了,那么这些知识你是必须要完成,那么来,同学们请看。Tom。这块是不是叫奥米long奥明添加。那OK,前提是你要整明白杨哥的GOUC19版的这个高频发多线程编程的课程你已经了解过,来来做这些题,你就会明白我们讲的当时为什么这么难,是为了大家干嘛找到好工作。
03:09
那么接下来。这个时候,同学们继续看。那么我们的操作是number加加,请看。A。And get。这个是一种再来看怎么呢。Equipment and get。然后再来看。干嘛?Get and ADD,读名字也会明白吗?加再获得是不是加加爱?这个呢,Get塔I是不是I加加那么,但是注意细节。这是ADD and get,这是get and at,但是别忘了,这我们还有。
04:01
And get,这个是get and,诶。有什么区别,注意。这个爱的是你想加几加几?这个是干嘛呀,Get干嘛and什么?是什么东东,同学们。急。所以说我们的number加加应该什么?Get and,我们请看。什么意思啊,原子性的增加八几啊Y你不能用那个I啊,I是你要可能有些时候你不是I加加,你想一次性加五听懂了吧。所以说它的设计非常的精妙。那么来。我们呢,放到这儿,请同学们看。然后呢,我们呢,Public void at a。那么言下之意,这种东西是不是带原子方法的加入了?
05:03
那么我要干一件什么事呢?那么就是点get and increase那么讲过了。Get,是不是先获得啊?得到了以后再加来加几。好,原码上已经说了,原子性的增加。一这样一个值就相当于掉一次加个,那么跟前面的这个number加加是不是一回事啊?好,那么来,兄弟们,接下来老规矩,这个类没有加look和snchize,这个类也没有加lock synchize。这个是number,是不是最。基本类型的。而这个是ultimate引起点,那么来吧。我们呢?还是这个东头二话不说,我们一样的架子,我们来个最狠的干嘛?点ADD。干嘛?Tom。那么一样,这个时候是不是也就是20个线程,每个线程调1000次来调用我们的这个方法,那么你看为点,那这个方法是不是我们自己的那么好,为了避免大家要是什么有误会,我们加个麦吧,麦是不是代表我自己的,那么这个时候OK,那么干嘛呢。
06:18
来吧,跟其他的一样。这个是。什么东大?Int类型。好,那么这种呢,是什么东东,是不是我们的。奥,Integer这么一种类型,那么来同学们,但是这个就不是number了,这个是不是我们的。原子的那个整形值是多少?那么同学们这一步我相信都能跟上吧?那么好,同学们。这个不保证原子线。这个保证原子线,那么同场较近,那么这时候看看答案如何?那么这个时候我们直接我跑。
07:03
一个192841个2万。OK。这一步能不能跟上,那么再执行一次,同学们看一下。18211,这个是跑丢了,出现了写覆盖对不对,按这个没有我们再跑一次。17563这个。OK,那么这个彤彤这个东东我们可以获得如何解决,那么是不是。直接。使用我们的guc。阴体角,那么言下之意,既然是带原子的,说明什么么?人家天生是不是就是?最小单位不可分割,我这一步一定是我做完了,别人才能来跟我抢,才能在我的基础上再去改,这样就不会出现写覆盖,我的劳动成果不会被别人覆盖,我们不会写丢,OK。那么当然了,那么同学们,这块我们是不是彻彻底底的解决了我们的。
08:04
验证了我们的可见性和原子性啊。那么当然,凭什么奥米克英加尔就能解决原子性,还不加S呢?是不是下一家?当然,这是下下下次课了。马上,如果你说用过奥特米克,注意哥。讲过了,杨哥现在给你们升华这种高级部分的知识,我们不是让你把你培养成什么鬼。就是杨哥一直说过的这句话。干嘛?我求求你了啊,我们这不培养什么API。调用工程师啊和什么东东赞删改查。程序员。这种情况下,你这辈子也就一万五顶天啦。你能解决这个问题,OK,说明用过,人家马上会问你。那么你能你,你告诉我,他凭什么加个奥米克就能解决原子线?
09:01
好,那么再来。底层原理知道吗?如果这个时候你说知道主要是CAS的。恭喜你。项目经理看到你是不是身上带着光一样啊,你就是我要找的人,那么之后跟你讲。那你给我解释下什么CS啊?好,那么这个时候如果你能够把我后面讲的跟项目经理唠唠,跟他说说UN safe类和自选锁,那么这个时候项目经理基本上是抱着你哭啊。OK,那么所以说呢,那么各位同学呢,表情包呢,不要严肃,觉得说要学那么多了,哎呀,基本上老规矩说招不是不招,有危机了。危险中有机会,恭喜你,各位九零后,你们逆袭的机会到了,淘汰水货学渣,滚蛋。学霸和真正真正有学习潜力和能力的九零后将会崛起,这是属于你们的舞台和时代。杨哥是老了。基本上我没有这个机会了。但是你们正当其时。
10:01
简单一句话。你的同学在学习,你的对手在磨刀,你的闺蜜在减肥,隔壁老王在练腰,你自己看着办。好各位亲,下课休息一下。
我来说两句