`
shoushounihao
  • 浏览: 41356 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java线程之一生产者与消费者

    博客分类:
  • java
 
阅读更多

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多线程经典模型生产者消费者java多线程经典模型...

    JAVA实现线程间同步与互斥生产者消费者问题

    本项目通过一个生产者消费者问题的实例,展示了如何在Java中实现线程间的同步与互斥。 生产者消费者问题是经典的并发问题之一,它涉及到两个类型的线程:生产者和消费者。生产者负责生成数据(产品),而消费者则...

    java多线程(生产者与消费者)

    生产者消费者模式是一种设计模式,它描述了两个不同类型的线程如何协作完成工作:生产者负责生成数据,而消费者负责消耗这些数据。为了使这个模式在多线程环境下安全运行,我们需要使用Java中的同步机制。 1. **...

    Java 线程间通信,生产者与消费者模型

    使用wait()和notify()实现的生产者与消费者模型,可以了解如何使用wait()和notify()进行线程间通信。(上一次上传的代码有一个问题没有考虑到,这次修补了——CSDN没法撤销资源,只能再上传了)

    java线程安全以及生产者消费者demo

    Java线程安全与生产者消费者模型是多线程编程中的两个重要概念,它们在并发处理中扮演着关键角色。在Java中,线程安全是指一个类或者方法在多线程环境下能够正确地处理数据,避免数据的不一致性或竞态条件。而生产者...

    java线程实现的生产者和消费者的程序

    生产者消费者问题是并发编程中的一个基础模型,它描述了两个线程——生产者和消费者——如何协作共享一个有限的缓冲区。生产者负责生成数据并放入缓冲区,而消费者则从缓冲区取出数据进行消费。为避免生产者过度填充...

    多线程简易实现生产者消费者模式

    生产者消费者模式是一种经典的多线程同步问题解决方案,它源于现实世界中的生产流水线,用于描述生产者(Producer)和消费者(Consumer)之间的协作关系。在这个模式中,生产者负责生成产品并放入仓库,而消费者则从...

    java实现多线程经典模型生产者消费

    java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现...

    java多线程实现生产者消费者关系

    在实际应用中,我们常常会遇到一种典型的多线程问题——生产者消费者模型。这个模型描述了两种类型的线程:生产者线程负责创建或生产资源,而消费者线程则负责消耗这些资源。在Java中,我们可以利用同步机制来实现...

    java多线程实现生产者消费者问题

    用java多线程,实现生产者消费者同步和互斥的问题,操作系统中的经典问题

    操作系统:多线程处理生产者消费者,java实现

    基本满足操作系统课上要求,java实现的生产者消费者模型。

    Java多线程 生产者-消费者模式

    生产者-消费者模式是一种经典的多线程设计模式,用于解决数据共享问题,尤其是在一个线程生产数据而另一个线程消费数据的情况下。在这个模式中,生产者负责生成数据并放入共享的数据结构(如队列),而消费者则从这...

    Java实现消费者与生产者两个线程问题

    用Java实现消费者与生产者两个线程进行调度

    java线程控制之生产者和消费者

    生产者和消费者 ----------------------------------- 产品 核心元素 工厂 生成产品 消费产品 生产者 生成产品 消费者 消费产品 市场 操作消费者、生产者 --------------------------------- 一次性生产15个 一次性...

    由生产者/消费者问题看JAVA多线程

    - `BlockingQueue` 是JAVA集合框架的一部分,提供了一个线程安全的方式来实现生产者/消费者模型。 - 它提供了`put()` 和 `take()` 等方法,这些方法会在队列满或空时自动阻塞当前线程,直到条件满足为止。 使用`...

    Java多线程-生产者与消费者问题

    ### Java多线程-生产者与消费者问题 #### 一、生产者与消费者问题概览 **1.1 概要** 生产者与消费者问题是计算机科学中一个多线程同步的经典问题。它描述了两个线程如何共享有限资源的场景:一个是生产者...

    java 多线程之生产者与消费者

    下面是一个简单的生产者消费者模型示例: ```java import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; class Producer implements Runnable { private final ...

    java中线程的生产者与消费者问题

    在Java编程中,线程的生产者与消费者问题是多线程同步的一个典型应用场景。这个问题源自现实世界中的生产流水线,其中生产者负责制造产品,而消费者则负责消耗这些产品。在计算机系统中,生产者可以是生成数据的线程...

Global site tag (gtag.js) - Google Analytics