我已经在一个多线程C (Linux)应用程序工作了一段时间-一个录像机,它有线程的音频和视频捕获,编码,多路复用和写入。
我一开始使用p线程操作将它放在一起,但现在我试图扩展它,以支持更多的状态和重构与锁定、设置标志和发送条件有关的重复出现的代码块。
到目前为止,我想出的是这样的:
。
我计划将公共元素存储在一个结构中,并有一个可以循环起来启动、检查和停止所有线程的结构数组。
当这变成一个更通用的线程支持模型时,我认为我是在重新发明轮子,所以我会在这里问一下,是否应该应用一些已知的模式。
发布于 2012-02-28 18:14:48
您的想法提醒我许多在QP状态机框架中实现的活动对象计算模型。具体来说,QP/C和QP/C++框架已经移植到POSIX (包括Linux、BSD等)。这个端口在Application "QP和Linux“中有详细的描述,可在:http://www.state-machine.com/linux/AN_QP_and_Linux.pdf上找到。
以下是到Linux的QP端口的亮点:
。
https://stackoverflow.com/questions/9478753
复制相似问题