package com.itcast.threadinfo;
//生产者与消费者
//(1-1)
public class Demo1 {
public static void main(String[] args) {
proDemo p = new proDemo();
Procedure pp = new Procedure(p);
Customer cc = new Customer(p);
Thread t1 = new Thread(pp);
Thread t2 = new Thread(cc);
t1.start();
t2.start();
}
}
class proDemo {
private String name;
private int count;
private boolean flag = false;
public synchronized void procudeInfo(String name) {
if (flag)
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.name = name + count;
count++;
System.out.println("生成者..."+this.name);
flag = true;
notify();
}
public synchronized void getcustomer() {
if (!flag)
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("消费者..."+name);
flag = false;
notify();
}
}
class Procedure implements Runnable {
proDemo d;
public Procedure(proDemo d) {
this.d = d;
}
@Override
public void run() {
while (true) {
d.procudeInfo("烤鸭");
}
}
}
class Customer implements Runnable {
proDemo d;
public Customer(proDemo d) {
this.d = d;
}
public void run() {
while (true) {
d.getcustomer();
}
}
}
相关推荐
在并发编程中,"生产者-消费者"模式是一种经典的解决问题的范式,用于协调两个或更多线程间的协作,其中一部分线程(生产者)生成数据,另一部分线程(消费者)消费这些数据。 生产者-消费者模型的核心在于共享资源...
本示例中的“生产者-消费者”模型是一种经典的多线程问题,它模拟了实际生产环境中的资源分配与消耗过程。下面我们将详细探讨如何在Java中实现这个模型。 首先,我们要理解生产者-消费者模型的基本概念。在这个模型...
java多线程经典模型生产者消费者java多线程经典模型生产者消费者java多线程经典模型生产者消费者java多线程经典模型生产者消费者java多线程经典模型生产者消费者java多线程经典模型生产者消费者java多线程经典模型...
本项目通过一个生产者消费者问题的实例,展示了如何在Java中实现线程间的同步与互斥。 生产者消费者问题是经典的并发问题之一,它涉及到两个类型的线程:生产者和消费者。生产者负责生成数据(产品),而消费者则...
生产者消费者模式是一种设计模式,它描述了两个不同类型的线程如何协作完成工作:生产者负责生成数据,而消费者负责消耗这些数据。为了使这个模式在多线程环境下安全运行,我们需要使用Java中的同步机制。 1. **...
使用wait()和notify()实现的生产者与消费者模型,可以了解如何使用wait()和notify()进行线程间通信。(上一次上传的代码有一个问题没有考虑到,这次修补了——CSDN没法撤销资源,只能再上传了)
Java线程安全与生产者消费者模型是多线程编程中的两个重要概念,它们在并发处理中扮演着关键角色。在Java中,线程安全是指一个类或者方法在多线程环境下能够正确地处理数据,避免数据的不一致性或竞态条件。而生产者...
生产者消费者问题是并发编程中的一个基础模型,它描述了两个线程——生产者和消费者——如何协作共享一个有限的缓冲区。生产者负责生成数据并放入缓冲区,而消费者则从缓冲区取出数据进行消费。为避免生产者过度填充...
生产者消费者模式是一种经典的多线程同步问题解决方案,它源于现实世界中的生产流水线,用于描述生产者(Producer)和消费者(Consumer)之间的协作关系。在这个模式中,生产者负责生成产品并放入仓库,而消费者则从...
java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现...
在实际应用中,我们常常会遇到一种典型的多线程问题——生产者消费者模型。这个模型描述了两种类型的线程:生产者线程负责创建或生产资源,而消费者线程则负责消耗这些资源。在Java中,我们可以利用同步机制来实现...
用java多线程,实现生产者消费者同步和互斥的问题,操作系统中的经典问题
基本满足操作系统课上要求,java实现的生产者消费者模型。
生产者-消费者模式是一种经典的多线程设计模式,用于解决数据共享问题,尤其是在一个线程生产数据而另一个线程消费数据的情况下。在这个模式中,生产者负责生成数据并放入共享的数据结构(如队列),而消费者则从这...
用Java实现消费者与生产者两个线程进行调度
生产者和消费者 ----------------------------------- 产品 核心元素 工厂 生成产品 消费产品 生产者 生成产品 消费者 消费产品 市场 操作消费者、生产者 --------------------------------- 一次性生产15个 一次性...
- `BlockingQueue` 是JAVA集合框架的一部分,提供了一个线程安全的方式来实现生产者/消费者模型。 - 它提供了`put()` 和 `take()` 等方法,这些方法会在队列满或空时自动阻塞当前线程,直到条件满足为止。 使用`...
### Java多线程-生产者与消费者问题 #### 一、生产者与消费者问题概览 **1.1 概要** 生产者与消费者问题是计算机科学中一个多线程同步的经典问题。它描述了两个线程如何共享有限资源的场景:一个是生产者...
下面是一个简单的生产者消费者模型示例: ```java import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; class Producer implements Runnable { private final ...
在Java编程中,线程的生产者与消费者问题是多线程同步的一个典型应用场景。这个问题源自现实世界中的生产流水线,其中生产者负责制造产品,而消费者则负责消耗这些产品。在计算机系统中,生产者可以是生成数据的线程...