多线程系列七:纯手绘图解多线程状态+代码示例,就问你怕了吗?

在学习Java的道路上,是否路过多线程时总让你很迷惘;很不巧,我也是,而使我们感到很迷惘主要原因都源于没有对概念的深深的理解和实践。所以我决定漫步Java多线程,同你一起会会多线程。

多线程系列

多线程系列一:理解多线程在于深深地理解了多任务、进程、多线程、线程
多线程系列二:手撕多线程,从会三种创建多线程方式开始:除了常见的两种,你是否了解Callable接口方式?
多线程系列三:初遇并发问题:从一个小故事开始,从一行行代码开始**
多线程系列四:停止多线程,你不会还以为是用stop和destroy吧?
多线程系列五:多线程为何要使用休眠?
多线程系列六:线程礼让与强制执行
多线程系列七:纯手绘图解多线程状态+代码示例,就问你怕了吗?

纯手绘

别说话,先上图,线程的状态,也可以说是线程的生命周期。
多线程系列七:纯手绘图解多线程状态+代码示例,就问你怕了吗?_第1张图片

Thread.State

NEW 尚未启动线程处于此状态
RUNNABLE 在Java虚拟机中执行的线程处于此状态
BLOCKED 被阻塞等待监视器锁定的线程处于此状态
WAITING 正在等待另一个线程执行特定动作的线程处于此状态
TIMED_WAITING 正在等待另一个线程执行动作达到指定等待时间的线程处于此状态
TERMINATED 已退出的线程处于此状态
public class ThreadDemo implements Runnable{
    @Override
    public void run() {
        for (int i = 1; i <= 2; i++) {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) throws InterruptedException {
        ThreadDemo threadDemo = new ThreadDemo();
        Thread thread = new Thread(threadDemo);
        //未启动前的状态
        Thread.State state = thread.getState();
        System.out.println(state);

        //开启线程后的线程状态
        thread.start();
        state = thread.getState();
        System.out.println(state);

        while ( state != Thread.State.TERMINATED){
            Thread.sleep(100);
            state = thread.getState();
            System.out.println(state);
        }
    }
}

多线程系列七:纯手绘图解多线程状态+代码示例,就问你怕了吗?_第2张图片
最后:

为了更好的阅读体验,我把想说的话都放在了下面,嘿嘿。

我是一颗剽悍的种子 把我会的,认真的分享 是我写博客一直不变的信条。
如果你能看到这篇博文,说明咱们还是很有缘的;希望能带给你一些许帮助,创作的不易,
把我文章的知识带走,你的三连留下,点赞,评论,关注,是我最大的动力。

你可能感兴趣的:(多线程&并发,java,多线程)