68得票8回答
使用队列的生产者/消费者线程

我想创建一种类似于生产者/消费者的线程应用程序,但我不确定在它们之间实现队列的最佳方法是什么。 所以我想到了两个想法(可能都是错误的)。我想知道哪一个更好,如果它们都不好,那么最佳的队列实现方法是什么。这些示例中,我主要关心队列的实现方式。我正在扩展一种队列类,它是内部类并且是线程安全的。下...

7得票6回答
C# 生产者/消费者模式

我有一个简单的生产者/消费者代码,如下所示,但输出显示只有C2在消费。我的代码中是否有任何错误? class Program { static void Main(string[] args) { Object lockObj = new object(); ...

21得票5回答
Java阻塞队列与批处理?

我对与Java BlockingQueue完全相同的数据结构感兴趣,但是它必须能够将队列中的对象分批处理。换句话说,我希望生产者能够将对象放入队列中,但是在消费者获取元素之前,必须等待一定数量(即批量大小)的对象进入到队列中。 一旦队列达到批量大小后,生产者必须等待消费者消费完队列中的所有元...

11得票3回答
使用pthread解决生产者消费者问题

我正在尝试使用pthread和semaphores解决生产者-消费者问题,但似乎生产者线程没有生产,消费者线程也没有消费。看起来线程已经被创建: /* Do actual work from this point forward */ /* Create the producer thr...

7得票5回答
多线程访问同一个文本文件

我有一个巨大的文本文件,每行都以换行符分隔,我想对每一行进行一些计算。我需要创建一个多线程程序来处理它,因为处理每行所需的时间比读取每行的时间更长。(瓶颈在于CPU处理,而不是IO) 我提出了两个选项: 1)从主线程打开文件,对文件句柄创建锁,并将文件句柄传递给工作线程,然后让每个工作线程...

8得票3回答
如何在BlockingCollection中包装ConcurrentDictionary?

我尝试通过将ConcurrentDictionary包装在BlockingCollection中来实现,但似乎并没有成功。 我知道一些变量声明可以与BlockingCollection一起使用,例如ConcurrentBag<T>,ConcurrentQueue<T>...

7得票3回答
为什么 asyncio 队列的 await get() 是阻塞的?

为什么await queue.get()会阻塞? import asyncio async def producer(queue, item): await queue.put(item) async def consumer(queue): val = await qu...

7得票2回答
任务并行库中的优先级队列

是否有将任务以不同优先级添加到TPL运行时的先前工作? 如果没有,一般来说,我应该如何实现这个功能? 理想情况下,我计划使用生产者-消费者模式将“待办”工作添加到TPL中。有时,我可能会发现需要将低优先级的工作升级为高优先级的工作(相对于其他工作)。 如果有人有一些搜索关键字,可以在评论...

11得票6回答
使用pthread条件变量与读写锁

我正在寻找一种在C++中使用pthread rwlock结构和条件例程的方法。 我有两个问题: 第一:这是否可能?如果不能,为什么? 第二:为什么当前的POSIX pthread没有实现这种行为? 为了理解我的目的,我将解释我将如何使用它:我有一个生产者-消费者模型来处理一个共享数组。...

8得票1回答
生产者/消费者模型等同于Actor模型吗?

最近我一直在阅读关于并发编程有多么困难,以及带有共享状态的并发编程几乎是不可能的文章。因此像Erlang这样的语言使用Actor模型进行并发处理,并且线程之间没有共享状态。现在在我的并发系统编程时间里,我没有发现并发很难 - 但通常情况下,我可以将几乎任何问题都放入生产者/消费者范例中,并且没...