00:00
好,还有一种创建多线程的方式,就是这里边提到了一个叫使用线程池的方式,哎,那实际上真正在开发当中呢,咱们都不会说自己亲自一个一个的去造线程的,那这个效率其实还是比较差的。啊,开发中真正用的呢,其实都是线程池啊,都是线程池,举个例子,还是咱们稍微形象一点,我来说一下这个移动端的一个例子,大家呢,还是拿这个手机,哎,然后呢,你点餐也好,看新闻也好啊,基本上咱们看到的都是这样的一个一个的item啊,一个一个的像啊通常的话呢,这块一般都会有一些相关的图片啊,你买东西这个商城基本上也都是这样的一个格局啊呃,在这里边的话呢,我们这个假设有很多项,你拿手手呢,就是往上去滑,快速的去滑。哎,咱们呢,之前一开始讲多线程也提过,那你往上滑不断的帮你去装数据,这其实呢是一个线程,通常都是主线程帮我们做的,那你在这在往上滑的过程当中呢,这里边儿呢,有很多的图片呢,需要去加载,那加载这个图片呢,通常图片都比较大。
01:03
啊,再加上你有可能网不好,这个加载的速度还比较慢,所以呢,为了防止这个卡顿,哎,让这个体验好一点,咱们呢都是在一个分线程当中去下载这个图片,对于这种文本数据的话呢,它很小很快啊,咱们呢可以就在你当一打开这个页面的时候呢,可能大家能看到这里边什么数据也没有啊,那么这你稍微等一下呢,你会发现这个文字呢已经出来了,是因为这时候呢,一次性呢,是把这个文字先都加载过来了,文字比较小啊,然后文字有了,你会发现这个图有时候会出现的比较慢,但是不影响你上下滑,呃,滑的话呢,还是相对比较流畅的,嗯,但是我们在主线当中去加载这个文本了,那么对于图片来讲,我们去开辟分线上去做,那这里边呢,你一个页面会显示很多的图片。那就意味着呢,我们需要开很多的分线程,一个图片,我们开一个分线程,那就开很多分线程,好那你想想啊,我这个手机如果我快速的往上滑的时候呢,只要这个item露过脸,就意味着此时我是不是要开一个分线上去帮你下载这个图片啊啊,那你要是快速的去滑,你会发现呢,呃,一闪而过啊,又出来其他新的了,那你就会出现这个呢,我开了个分线程,然后呢,造线程是不是也得花点时间啊。
02:17
哎,造完线程去下载呢,也得花点时间,你这个呢,哎,甚至这个造还没有给你造好呢,你就快速的过去了,整个你会发现你在滑的过程当中,这个CPU呢,包括这个内存是不是消耗的就会比较多呢。啊,你就会快速的去造,然后造完以后呢,呃,就是你有可能还没有用啊,这个时候呢,你就又翻过去了,那就白造了。嗯,还有可能就是你这时候造完以后,我在这稍微停留了一下,哎,把这几个图片呢,都下载下来了,下载下来以后啊,你造的这个线程相当于是不是就执行完转方法就该死亡了,哎,就是我们这个页面里边假设能显示这个五项,那你就造了五个分线程,图片显示完以后呢,这五个分线程就全干掉了,我又往上划了一下,出来了五个新的item,又造了五个新的线程。
03:05
造完以后呢,下来一个图片啊,又干掉了啊,再往上滑又造,你在这个滑的过程当中会造大量的线程。啊,这个时候呢,你好不容易造好了,然后呢,刚用完又不要了,实际上也挺浪费的。啊,所以真正在开发当中,咱们都不会说哎这一个位置啊,一个一个的去造线程,呃这样的效率呢也比较差,哎咱们真正开发中用的话呢,都会涉及到叫线程池,什么叫线程池,哎,就是我们提前呢创建好多个线程,哎把它们呢放到一个线程池当中使用的时候呢,大家直接来获取。你直接从这里边去拿这个线程用就可以了,当你用完以后呢,你再还到我这个池子当中,并没有此时把这个线程销毁,只是还回来了,哎,这样的话呢,我们可以避免频繁的创建和销毁这个线程,同时呢,还可以实现重复利用。
04:01
这个好处呢,其实很明显。啊,这叫线程池,当我们讲到后面JDBC的时候呢,还会提一个概念,叫做数据库连接池。啊,我们连接数据库呢,其实也是比较耗时的,那你刚连上数据库,然后呢,用完以后就不要了,挺浪费的,哎,我们也提前呢,建立好多的数据库的连接,给你放到一个池子当中啊,那叫数据库连接池,好处呢,跟它一样,哎,跟它一样,举一个生活中的例子。啊,这里边提到说这个公这个公共交通,实际上这个例子呢,非常好啊,非常好,比如说大家呢,你现在咱们在这个咱们这个校区的位置,大家现在想去这个天安门啊,你想去天安门就好比呢,你想做一个事儿啊,这个事儿呢,就是你这个县城里边的乱方法,或者靠方法要做的事儿啊,那你要是按照原来的思路怎么办呢?你要去这个天安门这块呢,你得选择一个交通工具啊,一看哎,骑个车比较方便,一看呢,没有车。自己呢,造一辆车啊这个呃,费了很大的功夫,造了俩轮子,造了个架,然后链子一整,诶造了个自行车,哎,这块你就骑过去了,哎骑过去以后说明你这个事呢做完了,到铁安门了以后呢,这个车子怎么处理呢,把它烧了是吧?啊但基本上你烧完以后呢,你基本上就基本上就回不来了,是吧?啊对,就是咱们新鲜点,就是你这个就不要了,不要了,这个时候呢,我就意味你把这个车子给销毁了。
05:27
啊,这天安门肯定不能让你干这个事儿啊,天安门其实有很多便异,对也有一些朋友的朋友,就是他们就是比如说这个月呢,是河北的警察哪个地儿啊,诶过来这个这个待俩月是吧,然后诶换俩月呢,就换成另外一个地儿的,哎,就是持续的给我巡逻的啊这个我记得以前是有一个我们研究生的一个同学哈,他的这个呃,考研的这个研友啊,当时考完研以后呢,就压力太大了,晚上喝了点酒,到这个天安门广场上一看没人啊,然后呢,放着嗓子喊了几嗓子,然后呢迅速的就被包围了啊包围以后呢,把他吓坏了,然后呢说也喝了酒了,哈,嗯,就都吓得都跪到那儿了,说这个我爱中国共产党啊啊后来呢,就是他们几个就去啊,喝多了是吧,啊后来就没事儿啊,要不就被抓走了啊,所以去天安门呢,不能乱来啊,啊对,嗯,就是这块呢,咱们就这个,你好不容易造了一辆自行车啊,你就到天安门了,到这以后呢。
06:28
这个车子对你来讲没有用了,你就给销毁了啊,那你如果说回来以后呢,又想去了,那你还得再造一辆车,首先造车这个事儿呢,就比较耗时啊,你过去以后呢,你把它销毁了,其实没有很好的进行重复利用啊,这个显然呢不是特别好啊,那你造车子这个事儿呢,就好比咱们之前讲的几种创建方式了啊,那现在这个线程池实际上呢,就相当于咱们选择公共交通。啊,比如说大家现在你想去天安门,你不是想的说我造一辆车,你想的是呢,诶我用一下县城已经有的车,不管你是坐公交车也好,还是坐地铁也好,诶很方便就过去了,可能还不等你这块呢,自己造车造完那个我都已经到了,而且到了以后呢,你下来就行,你下来以后呢,这个公交车也没有在这烧了,他回来还拉别人呢,是吧?哎,所以放到线程池当中,这个线程呢,你用完以后呢,只是还回来了,并不是说这个线程就被discuss了,就被销毁了啊这就提到了我们刚才我讲的这个事呢,提到了两个好处,第一个呢,提高了响应的速度,为什么呢?因为你减少了创建新线程的时间。
07:37
就像咱们刚才这个页面当中,我们去快速的划这个很多像一样啊,呃,这个时候你划的过程当中,你这些线程都不是,呃现造的,是已经造好的,这个时候你加载这个图片呢,就更快啊,就提高了这个响应的速度,那另外一方面呢,呃,你用完的这个线程呢,我们也没有销毁,而是呢,还到线程池当中呢,哎,再重新被利用啊,就降低了资源的一个消耗。
08:02
啊,这个很好理解,那除了这两个好处之外呢,还有一个好处叫便于线程管理。怎么叫便缘行程管理呢?哎,大家你想啊,比如说你现在还是去天安门,现在你想去,别人也想去啊,今天呢,10月1号所有人都想去,所有人呢,都在自己家里边造汽造造自行车是吧?哎,造完以后呢,都过去了,结果出现这个情况呢,就是堵那儿了是吧,再去这个天安门的路上全堵了。啊,我记得是去,呃这样一说呢,就是前年啊,一七年的时候,嗯,当时这个这个共享单车就很火的时候啊,互相大家打架,那时候呢,说在深圳去的是哪个海滩啊,就出现这样的问题了,就是那一天呢,放假期,然后呢,呃,莫名的所有人都要去那个海滩,然后呢,大家全骑的是共享单车啊,那个共享单车呢,这个虽然也是公共交通,但是你别想着这这里边儿咱们说这个啊,相当于是你自己造的一辆这个车子全都怼那儿了,最后呢,谁也别看了啊,车子怼的比人还多啊,呃,只能远远的看看海滩是吧?啊然后这个车子还不能撒手啊,因为你没地儿放啊,全是车子了。
09:11
所以说呢,就是你要自己造一辆这个车子去天安门呢,诶你你不知道这个其他人的一些行为,所以会导致呢,这个出现拥堵啊,还比如咱们以后会讲的这个数据库连接池,所有人这时候都去连接了,就像一个秒杀一样啊12点的时候呢,大家去秒杀,每个人都去自己建了一个数据库连接,那服务器就崩了,受不了了是吧?啊就崩了啊,就宕机了,那怎么办呢?诶我们呢,提前规定好。啊,你你要是对于这个数据库连接来讲,我就规定好最多呢能连10万个连接,超过了以后呢,我就不让你连了啊,你再刷新它也连不上啊这个服务器呢,它就不会宕机。啊,那对于咱们这个县城池来讲呢,就是大家呢选择公共交通,这个公共交通呢,它为了防止拥堵,它会控制一下这个呃车的发车的频率,比如说呢,呃,现在不拥堵啊,那我们就五分钟发一趟啊,当这个出现有些拥堵呢,我们就缓一缓,比如十分钟发一趟,哎,你选择用公共交通呢,它可以有一个整体的调度啊,相当于会有这样的线程的管理的概念,我们在这个线程池当中呢,可以去设置这样的一些这个属性啊,比如说啊Co process就是我们设置这个核心池的大小,还可以设置这个最大的线程数,还可以设置呢,叫线程没有任务时的最后最多呢,我们可以保留多长时间后呢,让它终止,通过这样的一些属性的设置,实际上呢,体现了是对线程池的一个管理,毕竟原来自己造个线程,自己想怎么来就怎么来,要好很多。
10:37
啊,所以说呢,大家,哎,我们在使用线程池的方式之前,大家先去理解一下为什么要用线程池,这个其实也很重要,后边呢,我们讲数据库连接池也是同样的这样的三个好处啊,先把这个我们停一下。
我来说两句