线程生命周期
任何事物都是生命周期,线程也是,
1. 正常终止 当线程的run()执行完毕,线程死亡。
2. 使用标记停止线程
注意:Stop方法已过时,就不能再使用这个方法。
如何使用标记停止线程停止线程。
开启多线程运行,运行代码通常是循环结构,只要控制住循环,就可以让run方法结束,线程就结束。
class StopThread implements Runnable { public boolean tag = true; @Override public void run() { int i = 0; while (tag) { i++; System.out.println(Thread.currentThread().getName() + "i:" + i); } } } public class Demo8 { public static void main(String[] args) { StopThread st = new StopThread(); Thread th = new Thread(st, "线程1"); th.start(); for (int i = 0; i < 100; i++) { if (i == 50) { System.out.println("main i:" + i); st.tag = false; } } } }
上述案例中定义了一个计数器i,用来控制main方法(主线程)的循环打印次数,在i到50这段时间内,两个线程交替执行,当计数器变为50,程序将标记改为false,也就是终止了线程1的while循环,run方法结束,线程1也随之结束。注意:当计数器i变为50的,将标记改为false的时候,cpu不一定马上回到线程1,所以线程1并不会马上终止。