已采纳回答 / 慕瓜3357229
如果都继承了Thread类的前提下,两种方式都可以创建一个线程对象,一般我们是使用第一种方式来创建线程对象(向上造型);PS:你的第二种方式是调用run方法,比不是让线程进入就绪状态(start());
2017-12-29
最赞回答 / 若如初见1997
你要知道 在ArmyRunnable 类 中 while(keepRunning) 这里是用的while 而不是if,while会一直判断,if只会判断一次,就是你在ArmyRunnable中的初始值!
2017-12-26
最新回答 / 姓白名黑
其他线程处于就绪队列,等待抢占资源,而wait是进入等待队列不能抢占资源,如果没有wait,那么条件不足的线程不进入等待队列而是进入就绪队列,这样的话该线程就有可能再一次进行同步锁进入退出的操作,这就是所谓的加大开销。
2017-11-15
已采纳回答 / 慕标7443549
这不就是时间差吗?long time就是当时运行到此时的当时时间,而while循环判断条件里面的是判断运行过程中的当前时间,当前时间和time的差值等于1000是不就跳出来循环了嘛
2017-11-13
最赞回答 / 福工刘德华
实际上这个线程不止一个,还有一个线程是负责启动main负责启动每一个线程,而main中的那个Thread.sleep是使main线程休眠,而run方法中的sleep是让实例化的那条线程休眠,而你在main方法中用interrupt停止实例化的那条线程就会导致api里面所谓的报错,我认为你是错将main方法中的停止main线程的Thread.sleep认为是停止实例化的那条线程,导致这种疑问出现
2017-11-13
最新回答 / Queen丶Star
大兄弟,那不是快捷键,,那是视频剪辑的问题,不是点了thread 后弹出来的方法补充。 继承一个类也基本不会出现一个方法继承的警告吧,如果你说要快速, 你可以直接写一个run 智能提示alt+/ 能帮你快速生成。。。
2017-11-08
最赞回答 / 幕布斯1198628
个人理解:Thread.currentThread() 获得当前正在运行的线程的引用。如果是通过继承Thread类实现多线程,则this就是当前正在运行的线程的引用,this.setName()可以直接设置线程的名字。但如果是实现Runnable接口,类中就没有继承Thread的方法,不能使用this.setName()。
2017-10-19