已采纳回答 / 张探长
查看api可知道 Runnable 接口,只提供了run()方法。所以只实现了 Runnable 接口的类并不能启动线程。当你再查看Thread的api时,有多个重载的构造函数比如这个: <...code...>启动线程只能用Thread里面的start() 方法。<...code...>
2016-09-06
已采纳回答 / 慕九州3071363
yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。
2016-09-05
已采纳回答 / qq_弑神S无尘
当年我学也没有,推荐一种写法private boolean flag=true;public void setFlag(boolean f ){flag=f;}在别的地方调用setFlag来改变标志。老师讲的关键字是什么时候出的我都不知道,我手边的书附录java关键字表也没有它
2016-09-03
已采纳回答 / 慕婉清0501596
看你用的什么软件 我用的idea 快捷键是Ctrl+D eclipse 是 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加) 百度下就行
2016-09-01
已采纳回答 / qq_慕粉119689
1.这个程序有四个线程。我们一开始是让stage线程启动,之后启动完之后,再启动armyOfSuiDynasty和armyOfRevolt这两个对象的线程。假如你不让舞台休眠50ms的话,那么舞台线程会继续执行下去,等到旗标的地方为false时,两个对象分别只运行一次循环。我认为你的第二个问题个第一个问题有点重复。第二个问题。stage线程对子线程的继续执行肯定有影响,没有stage线程的休眠,子线程肯定不可能厮杀那么久,至于为什么,就是因为想让他们厮杀一下吧。控制子线程的执行时间吧。我想。你不妨可以实际...
2016-08-14
已采纳回答 / 小娜子
调用sleep()阻塞当前线程,当其他线程调用interrupt()的时候,sleep()会发生InterriptedException()中断异常,并清除中断状态。System.currenttime - time)<1000是if的判断条件,当这个值小于1000时进入if()代码块执行程序。
2016-07-13
已采纳回答 / _布袋馍_
join()方法是终止其他线程,优先完成本线程。这个代码只有两个线程在竞争CPU。一个进行完不就只剩下一个线程了嘛 没必要在写多余的代码了 如果线程多了 就可以多写几个join()方法了。
2016-07-10
已采纳回答 / krisleo
Thread 是一个类只能继承后,复写run方法后,生成线程类对象调用start方法就可以实现线程的运行。Runnable是一个接口,里面只有一个run方法,只有实现(implement)这个接口后,必须复写run方法才能运行,步骤和Thread是一样的,一般用Runnable比较多
2016-07-07
已采纳回答 / 罗曼蒂轲
cpu的执行时分时的,比如你电脑现在开启了三个程序ABC,。CPU在这三个程序之间不停的切换执行,由于速度很快,你觉得它们是一起执行的,执行ABC不一定是按顺序的,也可能是A>C>A>B>B>B>C>A>B>A,所以会出现随机性的交替执行
2016-07-04
已采纳回答 / 玄鉴
我感觉是一样的,都是占着锅里的,渴望对方碗里的,还死不想让,结果导致被占着的厕所永远被这两个人占领,其他人都无法正常使用。除非关闭停止运行程序,大家都去睡觉,不然这两个线程将永远处于死锁状态。而且第二天还是有可能再次出现这种情况的,不过概率很小而已。
2016-06-21
已采纳回答 / 风云7857
Thread.sleep()使当前线程在指定的时间处于“非运行”(Not Runnable)状态。线程一直持有对象的监视器。比如一个线程当前在一个同步块或同步方法中,其它线程不能进入该块或方法中。如果另一线程调用了interrupt()方法,它将唤醒那个“睡眠的”线程。注意:sleep()是一个静态方法。这意味着只对当前线程有效,一个常见的错误是调用t.sleep(),(这里的t是一个不同于当前线程的线程)。即便是执行t.sleep(),也是当前线程进入睡眠,而不是t线程。t.suspend()是过时的方...
2016-06-21