线程状态

122 阅读1分钟
     * 线程状态
     *     操作系统五种:
     *     初始状态
     *     可运行状态
     *     运行状态
     *     阻塞状态 阻塞的io操作
     *     终止状态
     *
     *  线程六种状态
     *    NEW
     *    RUNNABLE 涵盖操作系统的运行,可运行,阻塞 调用阻塞api状态
     *    BLOCKED  没有获取到锁
     *    WAITING   调用join
     *    TIMED_WAITING  join(timeOut)
     *    TERMINATED
     */
    private static void test5() {


        Thread t1 = new Thread(() -> {
            log.info("running");
        }, "t1");

        Thread t2 = new Thread(() -> {
            while (true) {

            }
        }, "t2");
        t2.start();

        Thread t3 = new Thread(() -> log.info("running"), "t3");
        t3.start();
        Thread t4 = new Thread(() -> {
            synchronized (Test5.class){
                try {
                    Thread.sleep(1000000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }, "t4");

        t4.start();

        Thread t5 = new Thread(() -> {
            try {
                t2.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }, "t5");
        t5.start();


        Thread t6 = new Thread(() -> {
            synchronized (Test5.class) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }, "t6");
        t6.start();

        log.info("{}",t1.getState());
        log.info("{}",t2.getState());
        log.info("{}",t3.getState());
        log.info("{}",t4.getState());
        log.info("{}",t5.getState());
        log.info("{}",t6.getState());

    }