|
可否考虑这样的结构?
msgInfo
{
msgHeader ;
msgLength ;
msgContent; /* 用一块内存来保存消息的具体内容 */
}
这样,可以在msgHeader里面定义不同的消息类型之类什么的,然后不同的类型对应不同的msgContent,然后可以对应不同的type定义msgContent的内容的解析方式
这样的结构是,在读取的时候可以得到读取的地方,同时可以把内容完整地存在内存中,同时定义不同的类型的解析方式的话,就很灵活地可以定义不同的消息,
不过,溢出始终是一个问题,可不可以用多线程的方式读取?
都还没有想出怎么样的一个解决方式,只有考虑具体的应用,比如,多个进程写到这个共享内存,但是写的频率不大,这样可以考虑更大地共享内存,然后更快地读取方式(直接根据读出的length来把后面的内存的内容copy到自己的内存,然后再处理...) |
|