88、(案例)一个线程综合案例

本文提供了一个线程交互的实战案例,模拟顾客等待老板制作包子的过程。当老板做好包子后,顾客会进行食用,吃完如果没有剩余则继续等待。而老板在顾客吃完后会继续制作包子,确保顾客需求得到满足。案例涉及BaoZhi、GuKe、LaoBan及Example四个关键类的角色互动。
摘要由CSDN通过智能技术生成

一、设计

1、顾客等待老板做包子,老板没做好就等待,如果老板做好了就吃包子,吃完了没有了就继续等待。

2、老板做好了包子就等待顾客吃完,顾客吃完要求老板做包子后就继续做包子,做好了通知顾客吃。

BaoZhi.java

public class BaoZhi {
    String pi ;
    String xian;

    Boolean readyFlag = false;

    public BaoZhi() {

    }
}

GuKe.java

public class GuKe extends Thread {
    BaoZhi bz;

    public GuKe(BaoZhi bz) {
        this.bz = bz;
    }

    @Override
    public void run() {
        while (true){
            //和顾客线程必须互斥
            synchronized (bz){//用主线程创建的包子对象最为锁
                //如果有包子,顾客就吃包子,如果没有包子就等待
                if (!bz.readyFlag){

                    System.out.println("顾客期待包子中!");
                    try {
                        bz.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
             
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值