00:00
嗯,好了同学们,那么如果大家这个对这个叫做县城这一块的一个,呃,这个生产者和消费者模式的话,呃,如果是不是很理解的,不是很理解的啊,嗯,你再把这个程序再看一下啊,就是我写的这个程序,看一下自己假设情况,你一步一步假设一下是不是啊,你就是假设谁先执行,呃。谁后执行对不对,哎,然后呢,自己假设一番,你看看。啊,你最不好的情况是怎样的,对吧?你假设一番,从这捋一下这个代码啊,嗯,还有一个仓库中可以放多个元素,这是没问题的啊,呃,只要我们达到这个消费者和这个生产者均衡就可以了,没有任何问题。嗯,我觉得这样,我在这儿再给大家布置一个作业吧。行吧。再布置一个作业啊,你们自己做一下。嗯,我先把作业布置了啊。对,33 34。
01:00
作业啊。就大家使用什么呢?使用生产者和消费者模式实现交替输出。你自己做一下啊,交替输出。假设只有两个线程。输出以下结果。T2。T1T2。提。T2。能理解吧,交替输出。假设只有两个线程,输出以下结果T1。对吧,T2T1T2T1T2。
02:02
交替,并且T1只负责输出奇数,T2负责输出偶数。要求啊,必须交替。并且T1线程负责输出什么呀,奇数。T2线程负责输出什么呢?偶数。嗯。啊,自己搞一搞这个得需要用一下这个with notify。啊,你看看你怎么去弄啊,两个线程共享一个数字吧,应该是。是不是两个线程共享一个数字啊?两个线程啊,共享一个数字。每个线程执行时都要对这个数字进行加加。加一吗?四加一是不是两个线程共享一个数字,每个线程执行时都要对这个数字进行加加加一。而且还要交替执行,这需要使用到wait方法和notify方法啊啊,你可以写个class。
03:05
这class叫number呗,是不是,然后里边有个int I。对吧,啊,有个特有这样的一个一个一个一个类型。接下来你这块呢,应该是什么呀?哎,Number应该是synchronized。对不对?Synchronized锁谁呀?锁number对象吧。是不是哎,Number对象啊,怎么着怎么着怎么着。对不对,哎,如果现在这个是基数。啊,你要怎么办怎么办怎么办。是吧,哎,Synchronized。Number是不是,哎,然后接下来你再判断,如果说这个number是一个偶数。对吧,那你就在这wait呗,叫number.wait是不是,哎,然后这边呢,如果是基数,那你就点wait呗。
04:02
啊,我就不再写了,再写出来了啊,就这个代码吧,大概就是这个意思啊,你可能需要留两个线程,是不是两个线程共享同一个数字嘛。对不对,哎,然后呢,你never wait,什么时候wait,如果是基数你就wait呗。如果是奇数,我该输出偶数了,如果是偶数,我该输出奇数了。对不对,然后在这呢,你就输出什么呀,奇数呗,在这输出什么呀,偶数呗,是不是哎,你思考一下输出偶数,然后呢,输出完偶数之后notify哦是不是,哎,然后呢,这输出奇数之后呢,怎么办啊,再notify notify哦。是不是,哎。就是这个意思啊,行吧,那那这个题就就就你想一想吧,这个题该怎么做啊,我就我就不管了,不管了啊不管了就就就就说到这啊。
我来说两句