为了账号安全,请及时绑定邮箱和手机立即绑定

最赞回答 / 般若菠萝蜜yy
对的,然后等待其他线程调用同一条件变量的notify()或者notifyAll()方法

已采纳回答 / 我梦寐以求是真爱与自由
首先stage()本身就是一个线程,而在这个线程里又嵌了两个线程。写在Stage.Run()里面的Thread.sleep(50)只是让stage这个线程休眠50毫秒,但是并没有终止它嵌入的两个线程,所以两个军队一直在打,直到stage休眠结束执行到keepRunning = false时,三个线程都结束了,另外如果你把stage里面的Thread.sleep()注释掉你会发现它一次都没执行,我个人理解是线程异步,先编译再执行线程,编译完keepRunning已经是false了,所以不执行。
这不是java核心技术那本书的例子吗,只是把银行系统改为能量系统了。。。

最新回答 / 陈晨辰_
final修饰的数组只是说你的数组不能再指向其他数组对象, 但它指向的数组的内容是可以变的!而final修饰的锁对象为了保证多线程进行过程中的安全
这个类下面的方法不是void run()么,为什么要用.start()来调用呢???

最赞回答 / 慕斯卡3197864
run()方法只是一个普通方法,调用run()的话就相当于一个普通方法调用,并没有实现多线程。而start()方法才是真正启动线程的方法。调用start()后,此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,run()方法运行结束,此线程随即终止。
老师讲的很棒,加油
感觉听这个课需要一些别的基础知识,比如Java基础,还有大学课程,_操作系统 的知识。
老师讲的蛮好的,用一些通俗易懂又有共鸣的例子引入多线程的知识很棒。
王尼玛报警了!
为啥我感觉说话大喘气,感觉老师好累啊!

最赞回答 / TendeRess
//内部类的话要用主类的实例去new一个内部类的实例对象,比如Actress actress = new Actor().new Actress(); Thread actressThread = new Thread(actress,"Ms.Runnable"); actressThread.start();//这样就行了~<...code...>
污者自污,居然还有那么多人点赞。。。。
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、Java 中如何使用线程 2、什么是争用条件 3、线程如何交互

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消