我的C程序有两个线程,两个线程都与两个外部接口交互。一个源文件的代码太多,因此我将其分成两部分。什么是正确的分割?
一个线程 MtoD 将消息从IPC消息队列中取出,进行处理,然后将命令发送到物理接口的驱动程序。另一个线程 DtoM 从该驱动程序接收中断,处理输入,然后将结果以消息形式发布到IPC队列。
将代码一分为二的明显方法是:
我的担忧是
static
,这可能会启用更多的编译器优化。但是他们俩都需要与外部库的链接吗?哪种方法最佳?
答案 0 :(得分:0)
这是一个有趣的选择,您可能会推荐两个选项,这仅仅是因为两者都有优点和缺点,并且在很大程度上取决于一个人如何看待这些。
好,第三个选择:一个线程?如果我理解正确,可以将接口连接到IPC,因此,如果一个线程都对任一侧的输入都作出反应,然后将其发送到另一侧,则是否正确?我不认为您会以这种方式浪费很多响应时间,如果有的话,那么您将所有这些都放在一个地方。如果源太大,则可以查看可以自然地分离出哪些类,而不是分离成线程或接口。