9得票3回答
使用命名互斥锁来锁定文件

我正在使用一个命名互斥锁来锁定对文件(路径为 'strFilePath')的访问,构造方式如下: private void DoSomethingsWithAFile(string strFilePath) { Mutex mutex = new Mutex(false,strF...

9得票2回答
如何从AsyncSubject订阅一个元素并确保仅订阅一次(消费者模式)

在 rxjs5 中,我有一个 AsyncSubject 并希望多次订阅它,但只有一个订阅者应该接收到 next() 事件。所有其他订阅者(如果他们还没有取消订阅)应立即获得 complete() 事件而不是 next()。 示例: let fired = false; let as = n...

9得票1回答
在Java中寻找“返回值”的消费者抽象化。

在Java 8+中,是否有内置或强大的第三方抽象可用于返回消费者值? 附言:为了延迟执行,它也可以返回Future。 更新:Function接口具有完美的语法匹配,但存在一些语义上的考虑。在这种情况下使用Function显然会违反外部状态不应改变的契约。如何处理这个问题?

9得票1回答
当生产者也是消费者时,如何在生产者/消费者模式中使用BlockingCollection?如何结束?

我有一个递归问题,消费者需要在树的每个级别上执行一些工作,然后需要递归下降到树的下一个级别执行相同的工作。 我想使用 ConcurrentBag/BlockingCollection 等工具并行运行。在这种情况下,队列的消费者也是队列的生产者! 我的问题是:使用 BlockingColle...

8得票1回答
在Ada中的信号量

这是一个任务,要求我按照以下描述,在Ada中实现信号量Semaphore。 我已经在producerconsumer_sem.adb中调用了Semaphore.adb来使用此Semaphore。 我获得了以下输出。 我不确定信号量的初始化是否正确:S: CountingSemaphor...

8得票1回答
LMAX Disruptor - 批量大小由什么决定?

最近我一直在学习LMAX Disruptor,并进行了一些实验。有一件事让我感到困惑,那就是EventHandler的onEvent处理程序方法中的endOfBatch参数。请看下面的代码。首先是我称之为Test1和Test1Worker的虚拟消息和消费者类: public class Te...

8得票2回答
生产者通过消息队列一致地哈希到消费者吗?

我有一个生产者,希望通过一致性哈希算法将工作均匀分配给消费者。例如,对于消费者节点X和Y,任务A、B、C应该始终分配给消费者X,而任务D、E、F则分配给消费者Y。但如果Z加入消费者池,则可能会有所变化。 我不想编写自己的逻辑来连接消费者节点,尤其是不想管理加入和离开池的节点,因此我选择使用R...

8得票3回答
通用的.Net生产者/消费者

我正在考虑在C#中实现一个通用的生产者/消费者对+处理队列,以供娱乐。这个想法是你可以创建实现适当的IProducer和IConsumer接口的对象(提供默认实现),这些接口主要由委托组成,将它们传递给QueueProcessor类实例,告诉它你想要多少个消费者,然后开始运行。 但我对自己说...

8得票2回答
缓冲后台输入流实现

我编写了用于包装其他流并在后台线程上预读的背景InputStream(和OutputStream)实现,主要允许在不同线程中进行解压缩/压缩以及处理解压缩流的过程。这是一个相当标准的生产者/消费者模型。 这似乎是一种简单的方法,可以利用多核CPU执行读取、处理和写入数据的简单进程,从而更有效...

8得票3回答
监视器等待是否需要同步?

我开发了一个通用的生产者-消费者队列,通过监视器以以下方式脉冲: 入列: public void EnqueueTask(T task) { _workerQueue.Enqueue(task); Monitor.Pulse(_locker)...