用synchronized wait及notify实现 简单的生产者消费者的例子。以下是代码部分
/** * Test.java Create on 2014年10月10日 * * Copyright (c) 2014年10月10日 by dzh * * @author <a href="xingyu@gw.com.cn">xingyu</a> * @version 0.0.1 * */ package org.dzh.thread.waitAndnotify; import java.util.ArrayList; import java.util.List; import java.util.Random; /**@className:Test.java * @description * 线程{@link Thread} 与{@link Object#notify() #wait()} 的用法例子 * 简单生产者消费者例子 * @date 2014年10月10日 上午11:32:23 */ public class Test { private static List<Integer> queue = new ArrayList<>(); /** * 生产者 * @param n void * */ public synchronized void producer(int n){ System.out.println("insert data "+n); queue.add(n); if(queue.size()==1) this.notify(); } /** * 消费者 * @return int * */ public synchronized int consumer(){ try { if(queue.isEmpty()) this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } int result = queue.get(0); queue.remove(0); return result; } public static void main(String[] args) { final Test test = new Test(); Thread thread1 = new Thread(new Runnable() {//生产线程 @Override public void run() { Random random = new Random(); try { while(true){ test.producer(random.nextInt(1000)); Thread.sleep(2000); } } catch (InterruptedException e) { e.printStackTrace(); } } }); Thread thread2 = new Thread(new Runnable() {//消费线程 @Override public void run() { try { while(true){ System.out.println("select data is "+test.consumer()); Thread.sleep(1000); } } catch (InterruptedException e) { e.printStackTrace(); } } }); thread1.start(); thread2.start(); } }
相关推荐
以车库为例子,一组生产者向一组消费者提供消息,它们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。 根据进程同步机制,编写一个解决上述问题的可视化程序,可显示缓冲池状态、放数据、取数据等...
用java多线程简易实现生产者消费者模式的代码,用java多线程简易实现生产者消费者模式的代码。
一个详细讲解JAVA_生产者-消费者的例子 希望可以帮助到你 。
使用一个共享队列,生产者把产品放入队列,消费者消费产品,实现简单的多线程示例.
利用线程间的通信主要是因为当多个线程同时对一个对象进行访问的时候,多个线程之间是一个协助的关系,举个例子就是今天要说的生产这和消费者模型。
kafka-java-demo 基于java的kafka生产消费者示例。 mvn
kafka-java-demo 基于java的kafka生产消费者的例子。。。
生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。下文通过实例给大家介绍java生产者和消费者,感兴趣的朋友一起学习吧
主要介绍了Java实现Kafka生产者消费者代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
生产者消费者问题是典型的多线程编程例子,这个程序也是多线程编程必须经历的程序。希望对大家有说帮助。
刚收集的一些java常用的知识,包括几种xml读写方法,生产者消费者多线程,反射加载,文件读写等
本例将模仿经典的线程同步互斥例子——生产者和消费者问题,来演示 java 强大的多线程机制。生产者和消费者共享一个数据,当数据为0 时,消费者不可访问,生产者可访问数据,每次访问数据加1;当数据到达100 时,...
Kafka-Simple-Producer-Consumer:使用Java 8的kafka的生产者和消费者的简单变化
spring boot操作kafka例子 创建主题、生产者、消费者 发送消息、消费消息 application.properties配置
javaAPI SpringMVC 集成rabbitMQ 很全的例子,实现了生产消费,重复消费等功能
wait, notify 和 notifyAll,这些在多线程中被经常用到的保留关键字,在实际开发的时候很多时候却并没有被大家重视。本文对这些关键字的使用进行了描述。 在 Java 中可以用 wait、notify ...例如,在生产者消费者模
kafka生产者和消费者实例,了解Kafka的一个简单入门实例源码下载
实现java模拟阻塞队列的例子,该代码包括,阻塞队列实现生产者,消费者。和模拟阻塞队列实现生产者及消费者模式,帮助你更好的理解java多线程
里面提供Java多线程的概念,同步,死锁,wait/nofity机制的示例《生产者与消费者》例子
java File类字节流(复制、删除、剪切,下载)操作,多线程(用对象实现生产者消费者的例子)