问题标签 [producer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
235 浏览

java - Java中多生产者单消费者的软件设计

我有多个生产者,每个生产者都将数据推送到自己的阻塞队列中。每个生产者的数据都是独立处理的(因此有单独的队列)。

我的单个消费者目前轮询每个队列,每个队列都有超时。

程序运行良好,但我正在尝试优化,我不喜欢“轮询”。这是解决此问题的最有效方法吗?

我使用每个生产者的消费者编写了相同的应用程序,但情况稍差。

谢谢 。

0 投票
2 回答
893 浏览

c - 如何在 C 中实现自己的信号量?

我正在通过不同的方法解决生产者/消费者问题。我目前正在研究的一个涉及我自己的信号量实现,与 Peterson 的解决方案配对以保护信号量的 down() 和 up() 函数调用。

问题是,我正在使用 C 语言工作,我能想到的创建信号量的唯一方法是使用带有函数指针的结构,用于 down() 和 up()。这是正确的想法吗?

0 投票
0 回答
564 浏览

c - 生产者消费者多线程 printf 问题

我编写了一个模拟生产者消费者问题的程序,我遇到了几个问题。这是使用 Win32 API 编写的。

我正在使用两个满和空的信号量来对存储项目的缓冲区执行计数。还有一个互斥锁来控制对临界区的访问。我有两个功能:一个基于简单的计算创建一个项目:线程 * 1000000 + 计数,而另一个消耗它。

缓冲区中有 10 个空格,但是程序应该希望能够为不同数量的空格和线程工作。生产者线程通过缓冲区然后重新开始,直到信号量达到 10。我遇到了两个问题,我似乎也找不到解决方案,也没有在调试器中获得很多细节。

1)具有 printf() 函数的注释部分每次都会使线程崩溃。没有任何东西被打印到控制台。我也尝试过只使用一个字符串,而没有输出其他变量。没有成功。我发现 printf() 在多线程环境中使用时可能会遇到问题的文档,但是在这种情况下,它位于关键部分内,并且在第一次尝试时会崩溃。如何将该信息打印到控制台?

2)当我删除打印语句并运行代码时,线程每次仍然在不同的点崩溃。我不知道为什么。生产者线程应该等待空信号量和互斥体,将项目放入,然后增加完整信号量的计数(表示已添加项目)。当它达到 10 时,它应该停止。消费者线程等待完整的信号量和互斥量,删除一个项目,然后增加空信号量的计数。我写的方式有什么导致这些线程退出的吗?

这就是我得到的:

程序“[5348] OperatingSystem.exe”已退出,代码为 0 (0x0)。

0 投票
1 回答
50 浏览

c# - 生产单品并向前移动计数器

我正在解决一个问题,我需要一次向消费者提供一件物品并将柜台向前移动,以便下一件物品等等,直到物品用完。我想出了代码的初稿(见下文)。底层数据结构包含一个字典,该字典包含字符串作为其键,并保存另一个字典作为其值,该字典包含实体类型的对象。

我有一种感觉,我确实需要以某种方式维护状态,所以我尝试使用 yield return 语句,但不知道如何将它粘合在一起。另外我认为使用 forarch/iterator 可能需要调整,因为消费者会调用​​ GetNextItem() 直到它返回 false(意味着项目用完)。

0 投票
1 回答
436 浏览

java - 将 CDI 注入 Servlet 不起作用

我有一个控制器和一个制片人。

如果我将用户注入 Servlet,我总是得到相同的用户(我比较了对象 ID)——也在不同的会话中。如果我在 CDI Bean 中注入用户,它就可以工作并且我得到当前会话的用户。

0 投票
3 回答
418 浏览

java - 消费者生产者模式,生产者在重新触发之前等待所有消费者完成?

在这种情况下(任何版本),我试图找出 Java 中的最佳方法来实现单个生产者多个消费者,其中我使用 ExecutorService(根据偏好,不需要)生产者需要“永远”运行但每次它运行时,它需要等待所有内容都被完全处理完,例如所有消费者线程都已终止,队列为空,并且没有剩余的项目要生产。生产者也应该只以固定的时间间隔轮询其数据源。

举个例子:我希望我的生产者每 30 分钟轮询一次它的数据源以获取记录并将它们提交到队列中。如果消费者的处理时间超过 30 分钟,我希望生产者等到所有项目都处理完毕后再再次轮询其数据源(自 30 分钟过去后它会立即这样做)。

不是在找人为我写代码。一些基本的提示/指导将不胜感激。

这是我正在尝试使用的缩短示例实现。我已经采取了所有可怕的尝试来解决这个问题。请注意,用于构造 ThreadPoolExecutor 的硬编码参数最终将是动态的。

0 投票
0 回答
940 浏览

performance - 消息大小对 RabbitMQ Producer 发送到 Queue 的影响有多大?

所以我一直在学习使用 RabbitMQ 并且设置了服务器和生产者;在我解决这个问题之前不关心消费者。所以我在 30 秒内收集了我的字符串数据,将它们连接起来,并将它们作为 1 个大字符串发送;平均大小为 1180000 字节。我遇到的是消息至少需要 10 分钟才能出现在队列中;长达30分钟!

我的问题是消息的大小是否会影响进入队列所需的时间?或者那没关系,我一定做错了什么......

任何帮助表示赞赏。

0 投票
1 回答
930 浏览

c - C 多线程消费者-生产者程序中的分段错误

我目前正在了解线程程序的概念,并被分配使用线程和信号量模拟股票市场。这是代码:

这几乎在 main() 开始时就给了我一个分段错误,并创建了一个线程......因为它不是我从根目录创建的代码,所以我无法回溯错误并修复它 -如果有人可以看一下并给我一些提示,那就太好了

谢谢!

编辑

已解决问题,感谢您的帮助:)

我在 init() 上初始化了 stocklist,

并更改了 main() 中的第二个 cicle,

谢谢

0 投票
2 回答
112 浏览

checkbox - iAd Producer 复选框单选按钮?

我是 iAd Producer 的新手——我真正在寻找的是 Dashcode 的替代品,因为 Apple 似乎已经放弃了它。但是,虽然 iAd Producer 似乎可以生成 iBooks Author 小部件,但它似乎缺少一些基本对象 - 即复选框和单选按钮。

我确信有一种破解 HTML 的方法,或许还可以使用 jQuery 来完成这项工作,但这在 Dashcode 中是一件相对简单、直接的事情。我错过了什么吗?使用按钮、滑块等工具,我认为会包括复选框和单选按钮。

有人知道在 iAdProducer 中复制 Dashcode 功能的简单方法吗?

谢谢!

0 投票
2 回答
640 浏览

java - 试图用多线程解决java中的消费者生产者

我试图用java中的线程解决生产者消费者问题,但代码不会并行/并发运行。生产者总是在消费者开始消费之前完全填满缓冲区,我不明白为什么。重点是尝试仅使用同步块、wait() 和 notify() 来完成。

主要的 :

生产者消费者.java:

}

我的线程1:

我的线程2:

//消费者 - 线程