C++中的一种模块交互机制:
之前使用的是消息交互,采用消息队列的方式,按照任务进行分配,同一个任务应该使用一个线程。在C++中一些小的组件之间的交互的话,其实只需要使用函数调用就可以了,具体方法:
- ①通过全局变量(静态变量获取到对应对象的地址),
- ②调用预先定义好的一些接口(类似于发了一个消息给那个组件,然后那个组件处理,现在就是省掉了发消息的流程,组件直接处理了)(这个相当于是发送)那么如何接收返回消息?
- ③就是在②的过程中定义一个函数指针入参,来指明一个回调函数。这样的话那个组件逻辑中可以写成处理完毕后,调用回调函数,传入调用结果就可以了。这种机制是比较简单的组件之间的常用的低成本的调用方式。有一个好处是由于是一个线程中的调用,所以,没有调用完毕(消息没有处理完毕),当前发消息的线程是不能做其他操作的。省掉了等待,异常处理的过程(因为中间不能做任何其他操作)