• Thread


    Thread几种状态

    NEW(未启动状态)

    Thread t = new Thread() {
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName());
        }
    };
    System.out.println(t.getState().name());

    RUNNABLE(可运行状态)

    处于可运行状态的线程正在 Java 虚拟机中执行,但也可能是正在等待来自操作系统资源,例如 CPU。

    Thread t = new Thread() {
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName());
        }
    };
    t.start();
    System.out.println(t.getState().name());

    BLOCKED(阻塞状态)

    final Object lock = new Object();
    
    Thread t = new Thread() {
        @Override
        public void run() {
            synchronized (lock) {
                System.out.println(Thread.currentThread().getName());
            }
        }
    };
    
    synchronized (lock) {
        try {
            t.start();
            Thread.sleep(1000);
            System.out.println(t.getState().name());
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    WAITING(等待状态)

    调用以下方法,使线程处于等待状态:

    Object.wait()、Thread.join()、LockSupport.park()

    TIMED_WAITING(具有指定时间的等待状态)

    Thread t = new Thread() {
        @Override
        public void run() {
            try {
                Thread.sleep(2000);
                System.out.println(Thread.currentThread().getName());
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    };
    t.start();
    
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println(t.getState().name());

    TERMINATED(已终止线程的线程状态或线程已完成执行)

    Thread t = new Thread() {
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName());
        }
    };
    t.start();
    
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println(t.getState().name());
  • 相关阅读:
    求树的直径算法
    二叉排序树BST+求树深度算法
    HDU1114Piggy-Bank(完全背包)
    HDU1102(最小生成树Kruskal算法)
    NYoj289苹果(0-1背包)
    NYOJ201作业题
    C#发送邮件附件
    JS用户登录保存账号密码
    远程连接服务器
    博客园页面更新了
  • 原文地址:https://www.cnblogs.com/LQBlog/p/15268773.html
Copyright © 2020-2023  润新知