66.Java线程生命周期

线程生命周期

任何事物都是生命周期,线程也是,

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并不会马上终止。

author@nohert
原文地址:https://www.cnblogs.com/gzgBlog/p/13599327.html