首页 > 编程语言 >Java基础 等待唤醒机制——生产者代码实现

Java基础 等待唤醒机制——生产者代码实现

时间:2023-10-28 14:55:05浏览次数:26  
标签:Java 生产者 lock Desk Cook 唤醒 public

package pojo.xc01;

public class Cook extends Thread{
@Override
public void run() {
while (true) {
synchronized (Desk.lock) {
if (Desk.count == 0) break;

if (Desk.foodFlog == 1) {//桌子上有食物,就等待
try {
Desk.lock.wait();
} catch (Exception e) {
e.printStackTrace();
}
} else { //没有食物,就制作食物
Desk.foodFlog = 1;
System.out.println("做好了");
Desk.lock.notifyAll();//唤醒消费者开吃
}
}
}
}
}
----------------------------------------------------------------------
public static void main(String[] args) throws Exception {
Cook cook = new Cook();
Foodie foodie = new Foodie();
cook.start();
foodie.start();
}

 

标签:Java,生产者,lock,Desk,Cook,唤醒,public
From: https://www.cnblogs.com/gagaya2/p/17794079.html

相关文章

  • Java基础 等待唤醒机制——消费者代码实现
    等待唤醒机制的三个角色:生产者、消费者、控制生产者和消费者的第三者代码:packagepojo.xc01;//用来控制生产者和消费者的执行publicclassDesk{//桌子上是否有面条(0:没有面条1:有面条)//用布尔类型表示的话有一个小弊端,因为布尔类型只有两个值,只能控制两条线程轮流执行......
  • javaweb--事务
    beginupdate.........commit事务的四大特征A原子性--要么都成功要么都失败C一致性--事务完成时必须所有数据都保持一致状态I隔离性--多个事务之见操作的可见性D持久性--事务一旦提交或会滚,对数据库中数据的改变是永久的查看事务默认自动提交select@@autocommit;1->自......
  • Java8新特性
    Stream流可以说是Java8新特性中用起来最爽的一个功能了,有了它,从此操作集合告别繁琐的for循环。但是还有很多小伙伴对Stream流不是很了解。今天就通过本篇,一起深入了解下如何使用它。Java8Stream使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合进行链状流式的操......
  • Javaweb常用依赖版本(未完结)
    说明因idea与jdk版本的原因,一些高版本的依赖不能使用。这里列举常用依赖,使运行无错。版本说明idea2019jdk1.8MySQL5.7.24框架版本2.7web、MySQL、mybatis等可用自带的依赖Lombok<dependency><groupId>org.projectlombok</groupId><artifa......
  • Java基础 生产者和消费者(等待唤醒机制)
      生产者和消费者完整的执行过程:  ......
  • Java基础 当某一个线程执行代码时发现锁已经被锁住了,该线程会怎么样?
    当一个线程尝试获取一个已经被其他线程锁住的锁时,它的行为取决于所使用的编程语言和锁的类型。一般情况下,有以下几种可能的行为:1.阻塞等待:线程会被阻塞,直到锁变为可用。这是最常见的情况,通常用于互斥锁。在Java中,可以使用synchronized关键字或ReentrantLock类来实现这种行为。2.......
  • java——redis随笔——实战——优惠券秒杀
    黑马视频地址:https://www.bilibili.com/video/BV1cr4y1671t?p=49&spm_id_from=pageDriver&vd_source=79bbd5b76bfd74c2ef1501653cee29d6 csdn地址:https://blog.csdn.net/weixin_50523986/article/details/131815165          stringRedisTemplate.......
  • 5款在线JavaScript加密混淆工具
    5款常用、好用的在线JavaScript加密混淆工具,网址请从截图中查看。1、jscrambler2、JShaman3、javascriptobfuscator4、freejsobfuscator5、jjencode......
  • Java中的Set集合
    Set集合的特点:不能存储相同元素。Set接口两大实现(常用):HashSetTreeSetSet是一个抽象接口,不能对Set进行实例化。(Setset=newSet();)错误该接口主要继承于Collection接口,所以具有Collection的一些常见的方法。1.add()向集合中添加元素,返回Boolean2.clear()  ......
  • 你知道Java21中的顺序集合吗?
    在Java21中,处理集合的方式得到了改进,因为三个新的接口已经融入了现有的类型层次结构。这些顺序集合为我们提供了一个统一的API来访问第一个和最后一个元素,并以相反的顺序处理集合。为了更好地理解顺序集合是什么,让我们回顾一下集合之前的样子。Java集合框架在Java1.2中引入的C......