1,625
社区成员




我现在有一个场景是第一次接收到查询报文的时候会生成多条回复报文。完整业务流程是比如我现在接收到了A,我需要回复的B,C,D。但是C,D需要等待它再抄读对应第二个第三个的时候回复。我想的处理逻辑是把C,D放到一个以addr命名全局变量的list中,等下一次抄读如果addr能够对应的上我就从list中拿,如果下一次抄读addr对应不上,我就直接把list清空。
但是目前有两个串口通道,基础串口通道是一次抄读一条报文,在我回复分帧时才会抄读下一条,这个通道按照上述逻辑走的通。另一个串口通道是一次并发抄读多条报文,走上述逻辑的时候大概率我处理的第二帧抄读报文的addr对应不上。这样清空逻辑就不能这么实现了。
根本问题是如果我的项目中存在多个全局list,list中的数据也比较大,会不会引起程序崩溃之类的问题。还有就是如果我一直在生成addr命名的list,即使list被清空了,声明的list是不是还是占用内存,如果是的话,这个空list一直递增会不会也可能引起程序崩溃之类的问题?