00:00
好,同学们,那接下来结合前面的案例,我们来唠唠。首先同步。调用者一发起去调用服务器,调用者要一直等待结果的通知号才能进行后续的执行,现在就要我可以等,等出结果为止。老板,来杯奶茶,好嘞,你会干嘛?正常人类的思维方式,第一个你在那干耗着,干等着,没有意思,对吧?你肯定会先离开,一忙自己的事儿,二不影响后面的顾客继续点单。但是所有一种同步偏向于谁,强调的是调用者这边它一直在傻傻的等,那么所以这种方法不可取,一步先回去。被调用方先返回应答,让调用者先回去。
01:02
老板,点杯奶茶,好嘞,点好以后收银完成给你取取餐号,17号你让这个顾客调用者先回去,然后再计算调用结果,然后他是不是后面给你做奶茶去了,计算完以后最终会通知17号顾客请取餐,然后再通知调用者回来取,把东西给调用方,所以异步调用,异步调用要想获得结果一般。通过回调就是服务器反过来通知调用者,OK,所以我们这儿需要有个意思,同步和异步的理解,讨论的对象是谁,被调用者就是服务提供者,重点在于获得调用结果的消息通知方式上,你是傻傻等待还是等着被回调通知?好,这是我们的同步和异步相关的理解,第二个阻塞和非阻塞,那么大家想一下,这个是偏服务提供者对吧?那么这个就应该偏什么了?来谁阻塞调用方案一直在等待,而且别的事情什么都不做。杨哥去点杯奶茶,像傻逼一样的站在收银台那儿。
02:19
眼巴巴的看着菜单,你告诉我这个时候我是不是被请求现成顾客被挂起来了,我啥都不能干,大家觉得这种阻塞对我而言好吗?那我当然应该是什么不愿意被阻塞对吧?回到我的座位上,拿着我的取餐号,刷抖音刷手机去调用,再发出以后调用方先去办别的事,不会阻塞当前进程,或者现场会立刻返回,老板点个餐好拿着你的这个顾客取餐号,上面有我的绘画ID,出餐点餐的时间对吧?然后呢,走人。所以我们一定要明白两两结合,同步异步阻塞非阻塞,那么最好的是候是异步非阻塞这种情况啊,所以我们在这儿。
03:07
结合下来。继续说明白阻塞和非阻塞,我们就会清楚阻塞和非阻塞的讨论对象是调用者,也就是服务请求者。顾客点餐的重点在于等候消息,这个时候他的行为他在干嘛?调用者这个顾客能否干其他事?OK,所以弟兄们在这块一定要明白阻塞和非阻塞相关的理解。那么我们总结下来就一句话,两两组合,大概有四种方式,第一种。同步阻塞,服务员说我点个火锅,快到你了,排个号对吧。先别离开我后台看一眼,马上来通知你有没有位子客户在海底捞火锅前台干等着,啥都不能干,那么这个就是什么同步阻塞,弟兄们都清楚,那么海底捞火锅是不是点完餐以后排个号,你该去美甲,美甲该去打游戏打游戏,该去吃点心吃点心,他不会让你干巴巴的在这等着,所以同步阻塞是最垃圾最差的一种网络通讯方式,那么第二种。
04:21
同步非阻塞,服务员说快到你了,你也别走,哎,你在这耗着呢。客户在海底捞火锅前台边刷抖音边等着叫号,我非阻塞,也就是说这个顾客不像前面那干巴巴的等着啥都不干,我在这干刷着抖音好比上面好一个第三种。异不阻塞,服务员说,对不起,还没空闲的位置再等等,要不你先出去逛逛,一会儿我打电话通知你,客户怕这个客户呢,就害怕过号,所以在海底捞火锅前台拿着排号小票啥都不干,一直点一直等着店员通知,哦,OK,好,这是第三种情况,那第四种异不非阻塞最好的,对不对?服务员说还要再等等,要不你先去逛逛,拿着取叹号一会儿通知你,那么我拿着排号的这个小票,自己找个座,刷着抖丁,打着游戏,吃着小零食,等着店员通知啊,什么时候到我回调通知我,然后我再去。所以说这儿就是什么异步,服务员,那我去忙我的给你收拾空桌子,非阻塞,请求端客户我也别在这耗着,走人,别在大门口挤着干嘛,找个小凳子玩去,OK,所以说各位亲,这个就是我们所需要知道。
05:42
的常见常用的同步和异步,阻塞和非阻塞的理解,OK,那么基于此我们呢,才能给它结合这几个动作,给它整明白为什么从bio IO才会引出我们的IO多路服用代码证明。
我来说两句