首页 > TAG信息列表 > producer-consumer

Java线程生产者使用者算法无法正常工作

我试图学习线程,因此写了一个示例生产者消费者问题,其中生产者产生1到10之间的数字,而消费者必须显示它们.但是只有消费者显示数字1并停止. 正如我所说的,该程序编写得不好,可能很荒谬,但我仍然想弄清楚为什么从1到10的所有数字都没有打印出来的原因,因为我会在编写代码时而不是从

CodeGo.net>如何使用生产者/消费者队列递归搜索文件夹和文件?

我想先搜索目录,然后在其中的文件中搜索关键字. 我知道我需要两个类,生产者类和消费者类,但我不知道如何通过C#生产者/消费者队列进行搜索? public class Program { private static void Main() { Queue<File> searchFile = new Queue<File>(); Queue<Dire

python-由于阻塞Queue.get()方法而导致死锁

如标题所示,我陷入僵局,不知道为什么.我有多个生产者,只有一个消费者.线程调用队列的get方法后,schedule_task方法将被多个进程调用 from logging import getLogger from time import sleep from threading import Event, Thread from multiprocessing import Process from Queue

java-等待使用者完成任务,然后其他人才能开始

我有一个Java应用程序,它遍历树状文件夹结构并最终删除整个文件夹结构.为此,我在一个生产者(遍历一棵树并将路径放置到需要删除的文件)和许多实际执行删除作业的使用者中使用了阻塞队列. 文件夹必须为空才能删除,因此,请考虑采用以下结构: /folder1/file1 /folder1/file2 /folder1/

java-对生产者-消费者解决方案感到困惑(同步说明)

我一直在学习Java的并发性,遇到了生产者-消费者问题.这显然是标准的,而且我在很多地方都看到了几乎相同的答案. public synchronized void put(int num){ while (!empty) { try{ wait(); } catch {} } buffer=num; empty=false;

Java-生产者使用者-ExecutorService和ArrayBlockingQueue

我想知道我对生产者消费者设计的理解是否正确,方法是使用ExecutorService& ArrayBlockingQueue.我了解实现此设计的方法有很多,但我想最后取决于问题本身. 我必须面对的问题是:我有一个制作人,可以读取一个大文件(6GB);它逐行读取并将每一行转换为一个对象.它将对象放置在ArrayBlocki

Python中的简单线程示例

我对Python中的线程有疑问(我承认,我是这个主题的新手). 我有对象,我想在方法part1()中生成数字列表(具有一些随机时间间隔),并在part2()中生成-尽快打印所有生成的数字. 这是我的代码: import random import time from threading import Thread class GenerateRand: def __i

正确使用ConcurrentQueue中的块

我需要实现一个可以从多个线程填充的请求队列.当此队列变得大于1000个已完成的请求时,此请求应存储到数据库中.这是我的实现: public class RequestQueue { private static BlockingCollection<VerificationRequest> _queue = new BlockingCollection<VerificationRequest>();

消费者/生产者问题:由于消耗缓慢而暂停生产

我有一个生产商,可以从磁盘读取文本块.多个使用者正在对该块进行计算. 如果当前要计算的块超过n个,我希望生产者暂停从磁盘读取数据. 将其放在伪代码中以说明我想要实现的目标. // "produceBlocks" reads blocks from disk one by one // and feeds them to lambda produceBlocks(

Java 8 Functional Programming-需要在类上编写通用函数

我想创建一个接受这样的方法 set(nodeStatus, status, NodeStatus::setStatus, Status::valueOf); set(nodeStatus, errorCode, NodeStatus::setErrorCode, ErrorCode::valueOf); Status和ErrorCode是Java中的枚举. 签名和伪代码 set(NodeStatus nodeStatus, byte[] status, ?no

Java生产者/消费者,检测处理结束

我正在准备一个应用程序,其中一个生产者生成数百万个任务,然后由可配置数量的消费者处理.从生产者到消费者的通信(可能)将基于队列. 从运行生产者/生成任务的线程,我可以使用什么方法等待所有任务的完成?我宁愿不恢复任何定期轮询,看看我的任务队列是否为空.在任何情况下,任务队列为

如何在java中开发类似于生产者消费者的应用程序?

我必须开发一个类似于java中的生产者 – 消费者问题的应用程序. 但是我不太了解java,我有几个问题. 生产者和消费者都是不同的线程,他们都需要访问相同的缓冲区.如果它们都是不同的类(扩展线程类或实现可运行的接口),我如何编码它们以使用完全相同的缓冲区(这个假设的缓冲区是某个

使用用户空间程序传递内核模块的最佳方法是什么?

这个问题似乎很简单,但我想发送一个事件来通知我的用户空间程序模块缓冲区已准备好被读取. 例如,我的内核模块中有一个缓冲区,其数据将由用户空间程序使用.如果消耗了所有数据,则内核模块必须在新数据到达时通知我的程序. 这是生产者/消费者的典型问题.生产者是内核模块,消费者是用

为什么一个简单的python生产者/消费者多线程程序不会通过添加工作者数量来加速?

下面的代码几乎与http://docs.python.org/2/library/queue.html的python官方Queue示例相同 from Queue import Queue from threading import Thread from time import time import sys num_worker_threads = int(sys.argv[1]) source = xrange(10000) def do_work(item): fo

java – 并发:如何使用传入和传出队列实现执行程序?

众所周知,ThreadPoolExecutor使用一些BlockingQueue作为传入任务的队列.我想要的是让ThreadPoolExecutor为任务结果准备好第二个队列.我想将此队列用作发送或存储这些结果的输入/输出服务的源. 为什么我要创建一个单独的队列?因为我想要将结果的发送与获取结果的动作分开.另外,我认

C#中的生产者/混合消费者使用4.0框架类和Blocking Collection

我有一种生产者/消费者情景的情况.生产者永远不会停止,这意味着即使有时间BC中没有物品,也可以在以后添加更多物品. 从.NET Framework 3.5迁移到4.0,我决定使用BlockingCollection作为使用者和生产者之间的并发队列.我甚至添加了一些并行扩展,因此我可以使用带有Parallel.ForEach的

Java:具有长期使用者的并发队列以及短期生产者的处理保证

我正在寻找一个并发队列的现有实现,可以用来实现典型的生产者 – 消费者模式,但需要注意以下几点.每个生产者都是短暂的,但在退出之前必须阻止,直到它放入队列的所有消息都被消费者处理.消费者和队列是长寿的. 我所拥有的一些想法是使用单个分区队列,其中每个分区都分配给生产者,或

java – Kafka突然重置消费者Offset

我正在和Kafka 0.8& zookeeper 3.3.5.实际上,我们有十几个主题,我们正在消费没有任何问题. 最近,我们开始提供并消费一个有奇怪行为的新主题.消耗的偏移突然重置.它尊重我们设置的auto.offset.reset策略(实际上是最小的),但我无法理解为什么该主题突然重置其偏移量. 我正在使用高级

c# – 如何等待工作人员清空阻塞队列

我正在使用具有阻塞队列的单个生产者 – 单一消费者模型.我希望生产者在生产完成后,等待队列在返回之前清空. 我实施了由Marc Gravell建议的BlockingQueue here. 在我的模型中,生产者(渲染器)正在使用事件来通知工作者(打印机)何时正在呈现文件(工作人员对项目进行排队)以及何时呈

python中的协同程序提供了什么来改善天真的消费者/生产者设置?

我已经阅读了一些关于协同程序的内容,特别是python,但对我来说并不是很明显. 我已经实现了一个生产者/消费者模型,其基本版本如下: #!/usr/bin/env python class MyConsumer(object): def __init__(self, name): self.__name = name def __call__(self, data):

java – 为生产者消费者问题的变体选择数据结构

现在,我有一个队列,有多个生产者和单个消费者. 消费者线程操作很慢.此外,使用者通过窥视操作从队列中获取元素,直到消耗操作完成,该元素无法从队列中删除.这是因为作为副操作的生产者线程还拍摄了在该时间点未完全处理的所有元素的快照. 现在,我想更改我的代码以支持多个消费者.所

java – 使用相同的基本类型创建不同的对象.工厂模式?

我必须为大学课程实现多个生产者/多个消费者示例应用程序,并且很难找到解决以下问题的解决方案,这不会让我觉得,我做错了什么;) 我必须实现一个Producer,它生成一个给定类型的Component(CPUComponent,MainboardComponent.一个公共Component类的所有子类).生产者的每个实例仅生成给

java – LMAX Disruptor – 什么决定批量大小?

我最近一直在学习LMAX Disruptor并且正在做一些实验.令我困惑的一件事是EventHandler的onEvent处理程序方法的endOfBatch参数.请考虑以下代码.首先,我称为Test1和Test1Worker的虚拟消息和消费者类: public class Test1 { } public class Test1Worker implements EventHandler<Tes

c# – 使用线程和EventWaitHandle的生产者/消费者模式

我想这是一种代码审查,但这是我对生产者/消费者模式的实现.我想知道的是,在某种情况下,ReceivingThread()或SendingThread()方法中的while循环可能会停止执行.请注意EnqueueSend(DataSendEnqeueInfo信息)是从多个不同的线程调用的,我可能不能在这里使用任务,因为我必须在一个单独的

使用java和spring的生产者 – 消费者模式

我需要使用Java和Spring框架使用生产者 – 消费者模式来解决问题.问题是我是Spring框架的新手(我不知道)所以有人能指导我如何使用Spring做到这一点吗?一些书籍或网站,我可以逐步找到一个关于用Spring实现生产者 – 消费者模式的例子吗?解决方法:您有两种选择: >使用ApplicationEventP