多生产者单消费者问题的信号量 [英] Semaphore On Multiple Producer Single Consumer Problem

查看:250
本文介绍了多生产者单消费者问题的信号量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要对C ++的案例研究提出建议。

I need to suggestion on this case studies on C++.

我采用了多个线程20生产者线程在其上写的队列。将从队列中读取并处理它。
我计划使用关键部分和Semaphore来实现同步。

I have taken Queue where multiple Thread 20 Producer thread is writing on it.there is single Consumer thread which will Read from the queue and process it. I am planning to use critical section and Semaphore to achieve synchronization.

AddTail - 在队列中添加消息。
RemoveHead - 从队列中删除数据。

AddTail-Adding message in the Queue. RemoveHead-Remove data from Queue.

我已将队列长度限制为10个。

I have restricted the queue length to 10.

曲线段将保护wrt或/读取问题。
Semaphore将同步访问队列。

Crtical section will protect wrting or/Reading problem. Semaphore will synchronized access to the queue.

让我知道任何其他POssible解决方案。

Let me know any other POssible solution on this.

推荐答案

有很多方法可以编写这样的队列。例如,您可以使用互斥体和条件变量,如我在 http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html

There are many ways to write such a queue. For example, you could use a mutex and a condition variable as in my example at http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html

Herb Sutter在Dobb博士的文章中讨论了队列。请参见 http://www.drdobbs.com/high-performance-computing/211601363 http://www.drdobbs.com/high-performance-computing/210604448

Herb Sutter discusses queues in his articles at Dr Dobb's. See http://www.drdobbs.com/high-performance-computing/211601363 and http://www.drdobbs.com/high-performance-computing/210604448

这篇关于多生产者单消费者问题的信号量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆