// 线程有五大状态
// 1、新建:Thread t = new Thread(),线程对象就进入到新生状态。
// 2、就绪:当调用start()方法,线程立即进入就绪状态,但并不意味着立即被调度执行;
// 3、运行状态:线程被调度后进入运行状态,进入运行状态,线程才会真正执行线程体的代码块。
// 4、阻塞状态:当调用sleep,wait或同步锁定时,线程进入阻塞状态,
// 就是代码不往下执行,待阻塞解除后,重新进入就绪状态,等待CPU调度在执行。
// 5、终止:线程中断或者结束,一旦进入死亡状态,就不能再次启动。
// 测试stop
// 1、建议线程正常停止—》利用次数,不建议死循环。
// 2、建议使用标志位----》设置一个标志位
// 3、不要使用stop或者destroy等过时或者JDK不建议使用给的方法
package Thread_demo9;
public class Thread_stop implements Runnable{
// 1、设置标识位
private boolean flag = true;
@Override
public void run() {
int i = 0;
while(flag){
System.out.println("run……Thread"+i++);
}
}
// 2、设置一个公开的方法停止线程,转换成标识位
public void stop(){
this.flag = false;
}
public static void main(String[] args) {
Thread_stop thread_stop = new Thread_stop();
new Thread(thread_stop).start();
for(int i = 0;i<1000;i++){
System.out.println("main "+i);
if (i==500){
thread_stop.stop();
System.out.println("线程停止了");
}
}
}
}