00:00
大家好,我是海波老师,我们继续来讲Java现成的相关语法,我们这里拷贝一个新的,我们改成叫零六。然后我们后面呢,给它写上叫blocking。我们这里主要给大家讲一下主摄的相关内容来,其实啊,说到主色呢,我们主要给大家讲的就是两个方法的区别啊,来把这个去掉,我们写上它,我们叫做wait和sleep好了。那么我们这里啊,首先我们这里从几个不同的角度给大家做一个区分,那么这里首先第一个我们从名字上给大家做个区分,第一个名字呢,我们称之为叫wait,那wait什么意思呢?很简单,叫做等待,诶同学们通过这个名字,你们能不能感受到我们要等待别人做处理的感觉啊,对不对?什么意思啊,你别人处理完了才该我吗?那我不就得等待别人吗?所以我就处于主色状态,你看主色的感觉是不是就有了?哎,你处理完了才该我。哎,老师呀,那sleep呢,咱们这个sleep呀,它叫休眠呀,同学们来休眠。其实啊,简单来讲就要睡觉了,我睡觉的时候我也什么都没有干,我在阻塞,但是我需要等别人吗?不需要,我醒过来,我就继续可以干活了,对吗?哎,所以这个等待和sleep咱们从名字上咱们来区分一下,接下来我们再从它的从属啊关系。
01:16
上给它做一个区分我们的位的方法来,它来自于我们的object,它是一个我们的成员方法,就意味着每一个对象都会有这个方法,同学们,这个大家能不能明白,诶,这就是我们的weight的一个方法的来源,然后呢,我们还有一个叫做sleep方法,这个sleep方法呀,它不是我们的object,它来自于我们的slide,它是一个我们静态方法,同学们,这个需要大家注意一下,什么意思啊,我们的这个sleep只跟这个类有关系,跟别的没有任何的关系,这个需要大家能够明白,而我的这个object wait,每个对象它都有,而且都能用,但是用法上就有区别了,所以咱们这里说一下。
02:01
使用方式。我们当前的这个wait呀,同学们来写上它,我们的weight,它这个东西是不能直接使用的,为什么你要等别人,你们之间就有一个同步的感觉在里面,对不对,所以他只能使用在同步代码中。你必须得等别人嘛,那等别人的话就得需要同步了,这个没问题吧,但是我们的sleep呀,就可以在任意的地方使用了,所以我们的sleep。它可以在任意地方使用,它可以在任意地方使用,哎,所以这个就是他们的一个比较重要的区别了,使用的场景它不太一样,对不对,好了,再说一个就是我们的主摄时间。什么叫煮热时间呀,我们前面给大家讲过了,我们的这个叫wait,他需要等别人,那如果别人没有执行完的话,他其实是不能干别的事儿的,他会有一个叫超时时间,什么叫超时时间呢?就意味着我的等的时间太长了,我太长了以后,那我就不能再等,对不对,这个时候他会发生异常,但是呢,我们的sleep呀,它有一个叫休眠时间。
03:08
所以啊,这里我们说一下,它有一个叫我们的休眠时间,而这个休眠时间它不会有任何的问题,你休完自己就醒了嘛,对不对,比方说我睡八个小时,我睡三秒钟,哎,他自然就醒了,所以这个超时时间它会发生错误。而我们这个休眠时间,它是不会发生错误,所以这个也是他们的区别,我们这里呢,还有一个就是我的同步处理。这里我们写上wait。如果执行我们的wait方法,那么其他线程它有机会执行当前的同步操作。执行当前的同步操作。为什么?这个等待是什么意思啊?我就等你吗?等你处理完了才该我吗?所以说你就有机会执行这个操作了,不就这意思吗?但是我们的这个sleep就有点不太一样。
04:01
为什么不太一样呢?因为如果执行同步操作的话,其他线程是无法执行的,所以啊,说一下如果执行我的sleep方法。我们其他县城是没有机会执行当前的同步操作,为什么呢?我睡着了,我哪知道外面发生什么事儿了,我不知道,我醒过来了,我继续干,我啥也不知道,哎,就是这种感觉,所以啊,咱们的胃的和使力方法感觉很像,都能主摄咱们的现场,但是其实他们有点不太一样,这里呢,我们给大家做一个简单的总结,让大家了解一下他们之间的一个关系和他们的区别。好了,我们这个就说到这儿。
我来说两句