最赞回答 / TendeRess
//内部类的话要用主类的实例去new一个内部类的实例对象,比如Actress actress = new Actor().new Actress(); Thread actressThread = new Thread(actress,"Ms.Runnable"); actressThread.start();//这样就行了~<...code...>
2018-05-21
最赞回答 / no4990
这篇文章说得很清楚了。当前的线程阻塞,等待调用join()的线程执行。当前的线程可以是 “调用了join()的线程之外的任意线程”。java中的Thread类的joinjoin是Thread的实例方法,官方解释为:等待该线程终止。其作用就是将调用join的线程优先执行,当前正在执行的线程阻塞,直到调用join方法的线程执行完毕或者被打断,主要用于线程之间的交互。还有两个重载的方法:1、join(long millis),等待该线程终止的时间最长为 millis 毫秒。为 0 意味着要一直等下去。2、joi...
2018-04-23
最新回答 / Destiny_Ly
nong.keepRunning=false的时候,农名的线程还在while里面执行for循环,所以才会输出for循环剩余的2,3,4,5.等到下一次做while判断的时候,发现keepRunning标志为false了,才会结束线程。如果想把程咬金结束战争的字幕打印到最后,可以sleep一下主线程,或者调用sui和nong线程的join()方法。
2018-01-26
最新回答 / 慕仰6539668
你把 第二个类写到第一个类里面了public class XXX{class XXX{}} 这个错误public class XXX{}class XXX{} 这个正确
2018-01-23
最赞回答 / 若如初见1997
你要知道 在ArmyRunnable 类 中 while(keepRunning) 这里是用的while 而不是if,while会一直判断,if只会判断一次,就是你在ArmyRunnable中的初始值!
2017-12-26
最新回答 / 姓白名黑
其他线程处于就绪队列,等待抢占资源,而wait是进入等待队列不能抢占资源,如果没有wait,那么条件不足的线程不进入等待队列而是进入就绪队列,这样的话该线程就有可能再一次进行同步锁进入退出的操作,这就是所谓的加大开销。
2017-11-15