【发布时间】:2012-06-12 03:37:42
【问题描述】:
我有一个生产者多消费者程序,每个角色都有线程。我正在考虑在每个消费者上为 tcp 实现一个循环缓冲区,并允许生产者保留指向循环缓冲区内存的指针,然后将指针空间分发给 tcp 以将数据卸载到其中。
我的问题,如何让消费者线程知道数据何时进入?
我正在考虑忙于检查指针位置是否为 0;我不介意成为 CPU 猪。
我要提的是每个线程都是由SCHED_FIFO的cpuset和soft RT,当然c实现了。
【问题讨论】:
-
你是在linux上做这个吗?它必须是便携式的吗?
-
Fedora/Rhel 并且没有不可移植,你是否暗示中断?
-
您能详细说明一下您的设置吗?您是否希望在工作人员之间平均分配来自生产者的数据?数据是否以数据包/工作单元为单位?
-
消费者准备好消费下一个单位的时间是常数吗? (-> 单位的循环分配是否足够公平?)
-
Io 数据将从网上流出,生产者应分发给免费的消费者。线程绑定核心无需使用linux调度器
标签: c multithreading producer-consumer