zoukankan      html  css  js  c++  java
  • java 线程状态

    Thread类内的State枚举描述了线程的状态:

    public enum State {
        NEW, // 线程还没有启动
        RUNNABLE, // 正在运行
        BLOCKED, // 等待监视器锁。在同步代码块外面阻塞住了
        WAITING, // 等待Object.notify(),调用Object.wait()后的状态
        TIMED_WAITING, //调用Object.wait(1000)或者Thread.sleep(1000)后的状态
        TERMINATED; //结束
    }

    代码示例打印线程状态:

    public static void main(String[] args) {
        final Object obj = new Object();
        
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized(obj) {
                    System.out.println(Thread.currentThread().getName());
                    try {
                        // TIMED_WAITING
                        // Thread.sleep(5000);
                        
                        // WAITING
                        obj.wait();
                    } catch (InterruptedException e) {}
                    
                }
            }
        });
    
        Thread thread2 = new Thread(new Runnable() {
            @Override
            public void run() {
                //线程阻塞在synchronized代码块外,为blocked
                synchronized(obj) {
                    System.out.println(Thread.currentThread().getName());
                    try {
                        // TIMED_WAITING
                        obj.wait(1000);
                    } catch (InterruptedException e) {}
                    
                }
            }
        });
        
        thread.start();
        thread2.start();
        
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {}
        System.out.println(thread.getName() + "," + thread.getState());
        System.out.println(thread2.getName() + "," + thread2.getState());
    }
  • 相关阅读:
    内存溢出和内存泄漏的区别、产生原因以及解决方案
    HTTP1.0、HTTP1.1 和 HTTP2.0 的区别
    TCP, UDP, HTTP, HTTPS协议
    测试面试常见面试题汇总
    SDK测试方法
    App弱网测试工具--Qnet
    PerfDog性能狗移动端性能测试工具
    Jmeter作用域
    事务(转账功能)
    DBUtils
  • 原文地址:https://www.cnblogs.com/allenwas3/p/8505945.html
Copyright © 2011-2022 走看看