最赞回答 / 慕粉4279355
因为执行 sleep() 的进程是主线程 Stage,目的是从两个军队启动线程开始<...code...>到程咬金出现<...code...>之间,留有时间给军队双方执行各自线程 run() 方法里的 for 循环。这个 Stage 线程里的 sleep() 方法对两个军队线程没有任何作用。所以,当 Stage 线程执行到<...code...>和<...code...>之间时,两个军队的线程并没有被暂停,而是继续执行各自 for 循环里的内容。
2016-11-19
已采纳回答 / Askusity
Actor是Thread的子类,这是定义一个父类类型的引用指向一个子类的对象,如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法,如果子类中定义了父类中没有的方法是没办法执行的,这里呢,你可以理解为:Actor actor=new Actor();
2016-11-17
已采纳回答 / silencecorner
条件不满足时也就是其它线程还没有将数据写回(这里的lockObj是EnergySystem的final成员,用来标记EnergySystem,lockObj.wait()也就相当于EnergySystem实例.wait()),等待写入之后(也就是满足条件),执行逻辑代码,在唤醒其它线程(有可能还没有写入数据的)。可以回头看争用条件那节,有助于理解,我专门截了图。<...图片...>
2016-10-31