00:00
好,下边我们来看solid3.0的异步处理。一说到异不处理,大家马上就能想到阿贾克斯。对不对。但是你注意啊,这个异步处理指的是服务器端的异步处理,和阿贾克斯没关系,阿贾克斯是什么?是客户端的一步处理,这不一样的啊。两,两码事。那异步我们为什么要使用它呢?诶,这个啊,你要想理解为什么使用这个异步还真是有点。不容易,我们画个图。画个图。嗯,咱们这样大家看啊,我这边来一个这是什么,这是浏览器。
01:02
这边呢,画一个大点的,这是服务器。这浏览器。这是服务器。啊,这啊。我们大家知道啊,当浏览器发出一个请求到服务器。哎,当他到这儿的时候,那么负气会为其创建一个soet。对不对,它会创建一个solid,咱们这样吧,换一个,当然我这个请求是请求solve的啊。
02:05
那么这样。大一些吧。这是。嗯。Salta。会给他创建一个实例对吧,那继续当再过来一个请求的时候。这个solid还会创建,不会了。肯定不会来呀,对不对,它是单例多线程的,Serve是单例多线程的,我们之前一直着重都在强调单例,这个多线程又是什么意思呢?其实是这样的。我们的服务器会为每一个啊。
03:02
创建一个。什么东西?就是线程池。会为这个solid创建一个solid线程池。你过来个请求。那么。过来个请求,我这边就会给你。创建这样一个。现场。然后呢?放到这个线程池里边,再过来个请求,我再给你创建一个。放到它里边,再过来一个,再创建一个放到它里边。
04:02
但是用完了呢,用完了这个线程仍然在线程池里边不销毁,以备其他的来使用。那我一直过来,来个创建一个线程,来个创建一个线程,我问问。大家这个线程池。里边所放的县城的数量有没有上限?肯定有啊,我们大家知道线程池它是内存里边一块区域啊,所以它是肯定有上限的。不可能无限制的一直给你创建这个县城。比如说啊,咱们打个比方,假设这个线程池里边可以存放多少个solid线程,就就这个solid线程啊,因为比如这是log,那这个就是log线程池,这个是register,那它会再建一个register线程池啊,那假设说这个solid的线程池里边可以最多可以放100个线程假设啊。
05:14
可以放100个。现在这100个已经都满了。而且都在用着呢,没有被释放。那怎么办?如果说再来一个请求,还是请求这个。那会不会再为其?创建。So的线程了。不会了。这就不会了。为什么满了呀,这里边儿已经满了。没办法,这创建了,那那个请求怎么办?只能等待,等待着solid的线程池里边的。某一个县城。怎么样使用完毕了,释放了,然后他才能用,也就是说那个请就会被阻塞。
06:09
所以啊,我们一直强调说是单例多线程,单例多线程这个单例是一个实例,就这一个实例,但是这里边有很多的什么东西,换换个,嗯,换一个。啊,圆吗?有很多个什么。这是斯里县城。有很多。他都在它里边的,但这个东西是有上限的。那也就是说我们的。如果用完了,是不是赶快给他释放了?避免什么人又来请求了,没有萨利的线程可用了,对不对?
07:01
好。这是。多线程对于多线程的理解啊,这一点了第二点。我们再来说这个字小一些啊。我们再来说说什么呢?的一般性工作。那么一般性的工作都有什么?其实一般情况下,我们有这样的三件事要做。一个是。首先接收用户请求参数对吧,或者说接收用户请求。
08:00
第二个。根据用户请求。啊,根据用户请求,当然了,接收这个用户请求,接收这样吧,并解析用户请求对吧,然后呢,根据用户请求。调用service层。代码。是不是它调用service层的代码。对。这样吧,直接进行计算。第三。将。计算结果。
09:00
响应给。客户端对不对,咱们so啊so,一般性的工作,它主要就是做这个东西的,接收并解析用户的请求,然后根据用户的请求调用service层的代码进行运算,进行计算,然后将计算的结果再反馈给客户端,这是什么?这不就是。我们MVC里边的controller,它所起的作用吗?对不对,在MVC里边充当了什么controller呀,空气。接收并解析用户请求,这个很简单。这个也很简单。最主要的在这儿。他。比较麻烦。他非常的怎么了?
10:03
能换个颜色,不能。非常的。耗时。你注意,这一步是非常的耗时的。就是它消耗的时间很长,当请求被解析以后,紧接着调用这个代码,你注意调用这个代码意味着什么,当前这个一直被占用。直到什么时候,直到你计算结果拿到了,然后我把这个计算结果想给客户端了,好了这个so。县城才算被释放。这个过程非常耗时,他一直占用着当前的斯里线程,所以我们就想了,能不能这样呢?
11:00
你不是很耗时吗?我让你这个耗时的工作。交给一个。县城来完成。我的这个solid仅仅是启动。我们那个县城。一启动,他的任务完成了,紧接着就可以往后执行了,然后呢,然后这个solid就可以结束了。耗时的工作交给solid。呃,交给那个子县丞来完成。那么这时候。要做这个工作,就需要用到我们马上要学习的。萨塔伊布。处理了。这就是我们为什么要使用solid异步处理,或者说异步处理,它的作用是什么?功能是什么?
我来说两句