线程状态
-
new Thread()创建线程,此时线程处在创建状态
-
调用start()函数,线程进行就绪状态
-
当获得CPU资源时,线程进入运行状态,执行线程体的代码块
-
当调用sleep,wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行等阻塞事件解除后,重新进入就绪状态。
-
当线程中断或结束,进入线程终止状态
线程停止
线程停止主要可以采用两种方法
- 采用JDK提供的stop()、destroy方法,但这种方法已经废弃,不推荐使用。
- 通过设置标志位使线程自己终止运行,下面通过代码举例介绍。
package MultiProcess;
//测试stop
//1.建议线程正常停止
//2.建议使用标志位
//3.不要使用stop和destroy等JDK不推荐使用的方法
public class ThreadStop implements Runnable{
private boolean flag = true;
@Override
public void run() {
int i = 0;
while(flag){
System.out.println("run.....Thread" + i++);
}
}
public void stop(){
this.flag = false;
}
public static void main(String[] args) {
ThreadStop threadStop = new ThreadStop();
new Thread(threadStop).start();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i < 10000; i++) {
System.out.println("main" + i);
if (i == 9000) {
threadStop.stop();
System.out.println("线程终止了");
}
}
}
}