java 多线程生产者和消费者模式,怎么实现边生产边消费?

问题描述

java 多线程生产者和消费者模式,怎么实现边生产边消费?

如何使用java语言开发处理一批数据,使处理时间变快,而又不遗漏数据呢??

解决方案

看瓶颈在哪里,如果是cpu、io的开销,性能不可能无限提高。如果存在网络延迟等,可以用多线程隐藏延迟,达到提高性能的目的。

解决方案二:

你说的什么叫边生产边消费呢?生产者消费者设计实现设计中生产者把数据放入队列,消费者从队列中获取数据处理,消除了生产者和消费者之间的代码依赖。该模式将生产数据的过程与使用数据的过程解耦,简化了由于这两个过程不同的数据处理速率带来的工作负载的管理问题。边生产边消费是什么样的设计呢?

解决方案三:

建议采用无锁编程,java下提供了一些很高效的原子操作类,可以实现对一个队列的多生产者多消费者的并发操作。

时间: 2024-12-01 07:50:44

java 多线程生产者和消费者模式,怎么实现边生产边消费?的相关文章

java多线程,生产者消费者问题.

问题描述 java多线程,生产者消费者问题. 新手,在试着生产者消费者问题,刚开始的时候,SyncStack为空,但是会出现先执行c那个线程,打印出eat 0.然后才是produce: 0.jdk1.8的环境. 这个是为什么呀 public class ProducerConsumer{ public static void main(String[] args){ SyncStack ss = new SyncStack(); Producer p = new Producer(ss); Co

java多线程 生产者 消费者 问题 。。。

  /* 每一个对象除了有一个锁之外,还有一个等待队列(wait set),当一个对象刚创建的时候,它的对待队列是空的. 我们应该在当前线程锁住对象的锁后,去调用该对象的wait方法. 也就是在同步快 或者同步函数中调用  wait  对于生产者消费者问题应该在同一个对象的等待队列中 当调用对象的notify方法时,将从该对象的等待队列中删除一个任意选择的线程,这个线程将再次成为可运行的线程. 当调用对象的notifyAll方法时,将从该对象的等待队列中删除所有等待的线程,这些线程将成为可运行的

同步线程--生产者与消费者模式

同步线程的一种经典设计模式. public class Test { public static void main(String[] args) {  Quene q = new Quene();  Producter producter = new Producter(q);  Customer customer = new Customer(q);   producter.start();  customer.start(); }} //生产者public class Producter

多线程-不用等待唤醒机制下的多生产多消费有什么缺陷

问题描述 不用等待唤醒机制下的多生产多消费有什么缺陷 class Resouce{ private int count=1; private String name; boolean flag=true; Resouce(String name) { this.name=name; } synchronized void set() { if(!flag) { System.out.println(Thread.currentThread().getName()+""------生产-

聊聊并发(十)生产者消费者模式

本文首发于InfoQ   作者:方腾飞  校对:张龙 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题.该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度. 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程.在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据.同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者.为了解决这种生产消费能力

聊聊并发:生产者消费者模式

在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题.该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度. 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程.在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据.同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者.为了解决这个问题于是引入了生产者和消费者模式. 什么是生产者消费者模式 生产者

线程-生产者与消费者问题(JAVA实现)

问题描述 生产者与消费者问题(JAVA实现) public class TestProducerConsumer{ public static void main(String[] agrs){ SyncStack ss = new SyncStack(); Producer p = new Producer(ss); ConSumer c = new ConSumer(ss); new Thread(p).start(); new Thread(c).start(); }}class Woto

[Java] 多线程下生产者消费者问题的五种同步方法实现

版权声明:请尊重个人劳动成果,转载注明出处,谢谢! 目录(?)[+] 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题.    生产者消费者模式的优点 - 解耦 - 支持并发 - 支持忙闲不均 解决方法可分为两类:   (1)用信号量和锁机制实现生产者和消费者之间的同步:    - wait() / notify()方法  - await() / signal()方法  - BlockingQueue阻塞队列方法  - Semaphore方法    (2)在生产者和消费者之间建立一

java多线程解决生产者消费者问题_java

本文实例讲述了java多线程解决生产者消费者问题的方法.分享给大家供大家参考.具体分析如下: 题目是这样的: 采用Java 多线程技术,设计实现一个符合生产者和消费者问题的程序.对一个对象(枪膛)进行操作,其最大容量是12颗子弹.生产者线程是一个压入线程,它不断向枪膛中压入子弹:消费者线程是一个射出线程,它不断从枪膛中射出子弹. 要求: (1)给出分析过程说明. (2)程序输出,要模拟体现对枪膛的压入和射出操作: (2)设计程序时应考虑到两个线程的同步问题. 这个和著名的生产者消费者问题几乎是一