Java线程四
关于如何停止线程
在以前的JDK版本中Thread类有Stop方法,但该方法已过时
那现在的版本如何停止线程?
只有一种,就是让run方法结束
开启多线程运行,运行代码通常是循环结构,只要控制住循环,就可以让run方法结束,也就是线程结束
当线程处于wait() 等待状态,就有可能读不到标记,线程一直在等待被唤醒,此时线程将不会结束。
当没有指定的方式让等待的线程恢复到运行状态时,这时需要对等待的状态进行清除
Thread线程类提供了一个方法 interrupt() 方法是强制让线程恢复到运行状态中来,这样就可以让线程去判断标记,
由从才有可能停止run方法,也就是停止线程。
关于停止线程还有另一种方式,那就是守护线程
比如:目前运行的有三个线程,Main 主线程, Thread1 线程1, Thread2 线程2
如果Main主线程执行完成了,这时 Thread1 和 Thread2 线程也就没有存在的意义时,要都结束
为了达到这种效果,则可以将 Thread1 和 Thread2 为守护线程
换句话说,Thread1 和 Thread2 都依赖于 主线程,如果主线程结束,那么程序结束
使用守护线程的方式是
在Thread1 和 Thread2 线程在启动时,调用该线程的setDaemon()方法,传入true 参数,这个就可以将子线程变成守护线程。