Java高级

it2022-05-08  7

目录

五、线程状态

5.1 线程状态概述

5.2 等待唤醒案例:线程之间的通信

5.2.1 案例分析

5.2.2 代码实现

未完成


五、线程状态

5.1 线程状态概述

5.2 等待唤醒案例:线程之间的通信

5.2.1 案例分析

5.2.2 代码实现

package com.cpz.demo6_Thread_WaitAndNotify; public class Demo1 { public static void main(String[] args) { // 创建锁对象,保证唯一 Object obj = new Object(); // 创建一个顾客线程(消费者) new Thread(){ @Override public void run() { // 一直等着买包子 while (true){ // 保证等待和唤醒的线程只能有一个执行,需要使用同步技术 synchronized (obj){ System.out.println("顾客告知老板要的包子的种类和数量"); try { obj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } // 唤醒之后执行的代码 System.out.println("包子已经做好,开吃!"); System.out.println("============================="); } } } }.start(); // 创建一个老板线程(生产者) new Thread(){ @Override public void run() { // 一直做包子 while(true){ try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } // 保证等待和唤醒的线程只能有一个执行,需要使用同步技术 synchronized (obj){ System.out.println("老板5秒钟之后做好包子,告知顾客,可以吃包子了"); obj.notify(); } } } }.start(); } }

未完成

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


最新回复(0)