追梦赤子心RyanB
180416
慕仰9524692
qq_慕莱坞3428004
Thread是一个类(class),Actor继承类的时候需要用 “extends”;
Runnable是一个接口(interface),Actress实现接口的时候用“implements”;
慕村3124171

这里改成this.interrupt()
;
interrupted和interrupt是两个方法
很多事就是巧合
在sleep过程中调用的中断方法,抛出了中断异常,所以不用sleep
慕码人4120781
没什么区别 , Thread类本质上也是实现了Runnable接口 , 由于类单继承以及接口多继承 , 推荐用Runnable接口 , 因为可能你的类需要继承别的类 , 不管是通过继承类还是实现接口来实现多线程 , 最终都是通过Thread的对象的API来控制线程的
慕哥8332276
willbkimps
慧灵儿
Yeee
qq_俯仰满天星_0
应该new Actor(); new Thread();是错误的!!!
8198816
慕虎5107282
慕仔1073445
比如A有20能量,要传30能量给B,不满足,到wait set
但如果之后有别的空间传能量给A,那就可以满足了
慕少2650795
慕函数5031531
打开你下载的压缩包不是有两个文件么,thread-in-imooc(也就是另外一个文件)里面有其他代码。
IEwuIL7
这就是人类或者说所有的生命体追逐探索的东西
慕后端1690971
中断就是中途停止,开车开到一半,主动停了下来,并不再行驶。
堵塞就是遇红灯,开车遇到红灯停止,红灯过后继续行驶。(sleep设置红灯时间)
IRVLIN
放到前面就不会停止是指哪个线程不会停止
慕莱坞2041852
在线程的run()方法中的while循环没有停止
森森0515
yieId方法只是让当前线程让出cpu,至于几次就随机了。看让出cpu前具体执行了几次就是几次。
森森0515
好吧,因为我忘记实现接口了?
森森0515
其实老师的代码如果在双方军队战斗那加上sleep()方法的话,你会发现:程咬金先战斗完之后才是军队执行完
因此个人觉得应该在程咬金出厂后加入一个判断,如下所示:
//新建关键人物
KeyPerson keyPerson = new KeyPerson();
Thread chengYaojin = new Thread(keyPerson,"程咬金");
while(true){
if(!suiThread.isAlive() && !farmThread.isAlive()){
System.out.println("程咬金开始战斗!!"); chengYaojin.start(); //chengYaojin.join(); System.out.println("大戏结束!!!"); break; } }
chengYaojin.start();
chengYaojin.join();
System.out.println("大戏结束!!!");
break;
}
}这样的话才能使得双方军队退场后,程咬金才会上场,才符合逻辑。
窝窝头不要钱
Actress类的位置错了
应该放在Actor类的外面
森森0515
Java攀登者
没错,感觉他太僵硬了,强行搞个能量系统,都被他搞得反而更难了
只想当咸鱼的的胖龙
那不是快捷键,只不过是出错了,把鼠标放到出错信息那点击
慕慕3484187
我也这么觉得,没有体现出实际的意义
我一个不小心
代码中用了yield的方法,该方法与sleep()类似,只是不能由用户指定暂停多长时间,并且yield()方法只能让同优先级的线程有执行的机会。但是不确定暂停时间