最赞回答 / 我梦寐以求是真爱与自由
继承Thread和实现Runnable其区别主要在于共享数据,Runnable接口是可以共享数据的,多个Thread可以同时加载一个Runnable,当各自Thread获得CPU时间片的时候开始运行Runnable,Runnable里面的资源被共享。而...
2018-08-28
最赞回答 / 火云邪神的爷爷4298702
thread.interrupt()方法的作用是唤醒阻塞的线程,并抛出异常。当sleep后,线程阻塞,thread.interrupt()方法执行后,线程又被唤醒并抛出异常。因为线程被唤醒,所以this.isInterrupted()的值为false,while语句继续
2018-08-22
最赞回答 / SeokHo
首先,线程会在把线程内代码全部跑完以后停止,这叫做正常停止。调用stop是强行停止,不推荐使用。这里使用了keeprunning = false,那么就会跳出while循环,然后继续进行while循环以下的剩余代码,等剩余代码跑完,线程内就没有代码可以跑了,于是该线程就自己停止了。换成别的情况也是一样,比如说你得线程里只有一个System.out.print(),那么在执行完这个打印任务后,线程就停止了,这种情况不需要keeprunning=false。这里使用keeprunning=false的目的只是...
2018-08-18
已采纳回答 / xjc想学编程
final修饰的数组只是说你的数组不能再指向其他数组对象, 但它指向的数组的内容是可以变的!而final修饰的锁对象为了保证多线程进行过程中的安全
2018-08-02