已采纳回答 / 夜色中的烟雨楼
android中,在线程中是不能对UI进行操作的,改变UI只能在主线程中进行。你这里MainActivity实现了Runnable接口,那它就是个线程,怎么还能在run()方法中去更改UI呢!不知道我这个理解对不对,仅供参考
2018-06-20
最新回答 / yyz要学java
再调用一次Thread.interrupted();方法 会清除掉之前线程的状态具体的建议你看一下api该方法可以清除线程的中断状态 。
换句话说,如果这个方法被连续调用两次,那么第二个调用将返回false(除非当前线程再次中断,在第一个调用已经清除其中断状态之后,在第二个调用之前已经检查过)。忽略线程中断,因为线程在中断时不存在将被该方法返回false所反映。结果true如果当前线程已被中断; false否则。以上是java api中的表述
2018-06-19
最赞回答 / qq_莫月_0
由于java是单继承的语言,所以在已经继承了其他类又想同时实现线程操作的时候就可以实现runable接口。如下代码所示,实现了runable接口的类(runner1是这个类的实例)在开启新线程的时候还是需要thread来辅助的Thread thread1 = new Thread(runner1); thread1.start();
2018-06-18
这里有个详解,代码例子和老师的几乎一样https://blog.csdn.net/li12412414/article/details/54581615
2018-06-15
加上volatile后,当在stage里面keeprunning值改变为false时候,军队线程也会立刻改变为false,然后停止攻击。不加的话可能军队没有及时收到值改变的消息,还在攻击。
2018-06-14
已采纳回答 / 慕粉1473724057
我的理解是这样的 既然是多线程,多天线程同时进行,在农民和隋军的那两条线程进行的同时,就是main下的主线程也在运行(Stage),它在执行农民和隋军的线程的同时,也在一直往下运行,运行到armyTaskOfSuiDynasty.keepRunning=false; armyTaskOfRevolt.keepRunning=false;农民和隋军的线程自然也就停止了。
2018-05-29
已采纳回答 / V还在路上
其区别主要在于共享数据,Runnable是可以共享数据的,多个Thread可以同时加载一个Runnable,当各自Thread获得CPU时间片的时候开始运行runnable,runnable里面的资源是被共享的。
2018-05-29