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

    线程状态五种的说法:

      

       

     线程状态六种的说法:(准确)

      

       

      线程状态的转换:

        

         

         

         

         

        

        

        

         

        

    package com.fgy.demo05;
    
    /**
     * 等待唤醒案例:线程之间通信
     *      注意:
     *          同步使用的锁对象必须唯一
     *          只有锁对象才能调用wait和notify()/notifyAll()方法
     */
    public class Demo1WaitAndNotify {
        public static void main(String[] args) {
            Object obj = new Object();
    
            new Thread() {
                @Override
                public void run() {
                    synchronized (obj) {
                        System.out.println("顾客告知要的包子和数量");
                        try {
                            obj.wait();
                            // obj.wait(5000); // 如果5秒后没有被唤醒,则会自动醒来
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println("老板把包子做好了,可以开吃");
                    }
                }
            }.start();
    
            new Thread() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(5000); // 花费5秒做包子
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    synchronized (obj) {
                        System.out.println("告知客户,可以吃包子了");
                        obj.notify();
                    }
                }
            }.start();
        }
    }

    wait notify 的正确使用姿势:

      

  • 相关阅读:
    C# 获取计算机相关信息
    C# 创建Windows服务demo
    C# 嵌入互操作类型
    使用开源框架Sqlsugar结合mysql开发一个小demo
    C# 实现最小化托盘功能
    面试-PA和XSYX面试小结
    0103-springmvc的基本流程
    0102-aop
    java并发编程-12个原子类
    ej3-0开端
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12105203.html
Copyright © 2011-2022 走看看