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

最赞回答 / bbug
舞台县城控制了两个军队的开始(前2行)和结束(后2行)。换句话说,舞台线程不运行,军队的线程就不会执行sleep方法是让当前线程暂停指定的时间即50毫秒,这个50毫秒在军队的启动和结束之间,也就是军队进攻只有50毫秒的时间。如果没有暂停应该是各自只攻击一轮(取决于处理器速度)因为在第一轮还没结束的时候已经执行了最后两行的赋值了。着重说一点,sleep休眠的仅仅是舞台线程,两个军队的线程还在执行,因为sleep是写在舞台线程里面的(这段代码全是舞台线程的)。

最赞回答 / 亚努人
问题在main方法中的第一句Thread actorThread  = new Thread();  改为Thread actorThread  = new Actor();  就可以了,其他的都没问题。因为实例化(new)的是你创建的类Actor,才能让它的对象actorThread调用start方法启动线程。至于前面的Thread是Thread还是Actor,这里暂时都没有关系,因为Thread是你创建的Actor的父类,用Thread就是多态性里的向上转型,没有问题的。

最赞回答 / GeniusDSY
join方法会使其他线程进行等待,使使用join方法的线程先运行,待该线程运行完毕之后,其他线程继续运行。而未使用join方法时,该线程与其他线程一致,等到其他线程运行结束后,该线程才可运行,故提前输出了战斗结束,然后才关键人物登场

最赞回答 / qq_天涯一隅_03157305
<...code...>我认为是 for循环100次 的 Thread t=new Thread(task,"TransferThread_"+i);t.start(); 是多线程

最赞回答 / qq_ZhouJunke_0
是在for循环里头调用的啊,这不就是多个线程了吗。

最新回答 / 寒金鱼
不守恒的原理视频中已经说的很清楚了,不守恒其实已经存在了,只是你把这两个写颠倒之后,不是此个线程的正确表示状态。就比如int i = 100;     你先输入的i = i - 1;  还是先输入System.out.printfln(i)的区别如果先写i = i - 1 ,再输出i那么i=99如果你先输出i,那么打印输入当然是i = 100。之后再执行i = i - 1。执行结果其实已经是i = 99了,但是你打印输出的是i = 100.

最新回答 / 九七
extends使线程类为父类,才能继承线程的相关操作。applet是java嵌入html的方法,和thread好像关系不大吧?建议修改问题或者增加提示,才能让更多的人能帮助到你

最新回答 / 慕移动9181930
11行varmychar=document.getElementById(“con”)线颜色#000000

最赞回答 / 慕粉4279355
因为执行 sleep() 的进程是主线程 Stage,目的是从两个军队启动线程开始<...code...>到程咬金出现<...code...>之间,留有时间给军队双方执行各自线程 run() 方法里的 for 循环。这个 Stage 线程里的 sleep() 方法对两个军队线程没有任何作用。所以,当 Stage 线程执行到<...code...>和<...code...>之间时,两个军队的线程并没有被暂停,而是继续执行各自 for 循环里的内容。
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、Java 中如何使用线程 2、什么是争用条件 3、线程如何交互

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消