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

已采纳回答 / 高压锅里的小白
你ArmyRunnable这个类里,for循环i<5,写成1<5,成死循环了

已采纳回答 / TalentQ
keepRunning 这个属性在定义的时候,必须添加volatile关键字,否则其他线程将不能获取这个值

已采纳回答 / 是王小二呀
第一:创建线程只有继承Thread类和实现Runnable接口两种方式(Thread也是实现了Runnable接口);第二:若以继承Thread类方式创建线程则这个类的实例就可以重写Thread类的几十个方法,注意是好几十个方法;第三:若以实现Runnable接口的方式创建线程则仅仅只有一个run()方法可供重写;注意是只有一个;    实现Runnable接口创建的线程最终还是要通过将自身实例作为参数传递给Thread然后执行,当你要为一个没有继承Thread类的类创建线程,而且只想让这个类的实例调用r...

已采纳回答 / 惫懒sloth
Thread.sleep();这个方式是使得当前在运行的线程休眠,作用就是让 Stage休眠,如果单纯的 Stage.sleep()是没有这个方法的。

已采纳回答 / 乔小欠儿
Stage的run方法里有armyOfFarmer.join();这句。这句的意思是说农民的run方法执行完了才能往armyOfFarmer.join();这句代码之后运行。但你看看你的ArmyRunnable的run方法里,while (keepRunning)的keepRuning一直是true,...

已采纳回答 / sxian_wang
不会,主要是这样的:先明白两个概念:锁池和等待池。synchronized是锁池,wait、notify、notifyAll是等待池。等待池的对象是不会竞争锁的,当notifyAll后,等待池中的线程会被唤醒进入到该线程的锁池中重新竞争对象锁,重新获得锁后的对象会从wait后继续执行代码,其他对象会被阻塞,而不是wait。被阻塞的对象会等待下一次被唤醒(notify、notifyAll)。另外,notify不是线程安全的,notifyAll才是。

已采纳回答 / sxian_wang
其实就是this.getName();这个类是Thread的成员函数,这个方法在Thread中已经实现了,所以在子类中可以直接调用。这两种写法没有本质上的区别,都是指当前对象的xxxx。在实际开发中,加不加this,我没有查到有一种确切结论,更多是个人习惯吧。不过貌似在访问当前对象的属性(变量)的时候一般多用this;而在对象内部调用非静态方法时不用this,直接用函数名调用。

已采纳回答 / HansonQ
因为你不继承的话直接使用Thread没有任何意义。你要多个窗口卖车表,你直接实例化Thread并不能实现多个窗口卖车票

已采纳回答 / 风拔萝卜
这个要分情况的。如果你是用的实现Runnable类的方式的话可以直接使用this,而如果是使用继承Thread的方式时就不要使用this,因为此时this指向不同对象,这样每个线程都拥有自己的锁,无法实现同步

已采纳回答 / 转变者
这里不一样的呀!public class ActorCopy extends Threadclass Actress implements Runnable

已采纳回答 / 天启之魂
如果使用if 那么判断标记后,线程等待然后被唤醒 会直接执行下面的语句,但是可能这时条件是不成立的所以需要重新判断条件 使用while就可以重复判断标记

已采纳回答 / 天启之魂
没看到你别的代码,也没看这个题目,不知道具体问题, 但是就你出现的那个问题,notify是唤醒线程池中的任意一个线程,当你的读和取都有多个线程时,有使用的同一个锁,确实会造成死锁,JDK1.5 java.util.concurrent.locks 包中提供了更方便的灵活的解决办法    java.util.concurrent.locks包下    Lock接口:代替了同步代码块或者同步函数,将同步的隐式锁操作变为了显示操作,而已可以加上多个监视器,Condition接口中signal();唤醒锁上指定监...

已采纳回答 / 淡彩Sone
run方法只是方法体里是你需要执行的业务逻辑。while(true)当然条件为真,那么循环必定永远执行下去。跑不出去?对啊!思路没错的,里面条件为真的循环一直在走,那么run就没有走到方法体最后一行的机会,那么run方法永远不结束,线程也不会结束。你说的是课程里那个能量守恒吧?时间在变,能量在变,所以以现实世界的逻辑套用到程序,那么就是一个永久的执行过程,没有停止的,除非宇宙大爆炸?那也不一定,炸完了能量转移了也不一定,也还没完。。。
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、Java 中如何使用线程 2、什么是争用条件 3、线程如何交互

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消