老实说,我不知道如何开始编码这个。我现在正在研究有关线程和锁定的事情。但是,您能否告诉我如何实现这一目标。
答案 0 :(得分:1)
这与consumer producer
problem类似吗?
您有客户下订单和线程等待处理它们。唯一的区别是您有产品类别,这意味着订单由多个线程处理,具体取决于产品类型(例如:产品A,产品B)。
虽然制作代码很难(实际上是你的工作),但我会尝试提供你可以尝试采用的指南,
首先,您需要为每种产品类型单独queues
。队列保留FIFO
要求(检查documentation)。并且您需要为每个queue
分别设置一个专用线程。这个线程做的是检查相关队列是否有要处理的产品并处理它们,如果有或者没有任何产品可以设置为休眠/空闲。
要使queue
同步,您需要使用枯萎locks
(MSDN)。这意味着生成方法和处理线程需要访问共享资源,queue
没有竞争条件。
此外,当队列中有项目时,您可以启动处理线程,并在队列变空时处置线程。但是我上面描述的所有要点对于这种情况仍然有效。