求老师指导,大量数据通过TCP接收到后显示和存储的有关问题
求老师指导,大量数据通过TCP接收到后显示和存储的问题
主线程是一个客户端,通过TCP连接到多个不同的数据源接收数据。我针对每一个数据源分别使用一个通信线程和一个数据处理线程,通信线程接收到数据后发送线程消息到数据处理线程来处理和存储,完成后发消息到主线程来显示。数据处理线程速度不够,时间一长造成其消息队列溢出。请问有没有更好的解决方案?
处女帖,献给赐教的老师。
------解决方案--------------------
改一下模式,把收到的数据保存成文件存到固定的目录下,然后数据处理线程扫描该目录处理数据,句柄等重要信息以文件头的方式存在文件中,这样就解决处理线程消息队列溢出了吧
------解决方案--------------------
一个数据源用一个线程就可以了吧,同意楼上的观点,把数据集中保存起来,主线程自主工作就可以了,每隔几秒刷新一次。
------解决方案--------------------
不赞成1楼的方法,1楼的方法,虽然可以解决这个溢出的问题,但是会降低处理速度。
建议还是优化数据处理线程。
你也不贴出代码,没有更进一步的办法了。
------解决方案--------------------
减少其他线程的占用cpu比例,通信线程一旦发现没有新数据就sleep()释放cpu。
通信线程把收到的信息保存到一个公共(和对应数据处理线程共用)的数据区,积攒到一定量消息通知数据处理线程去处理。
------解决方案--------------------
也可能是传递数据时有问题的
主线程是一个客户端,通过TCP连接到多个不同的数据源接收数据。我针对每一个数据源分别使用一个通信线程和一个数据处理线程,通信线程接收到数据后发送线程消息到数据处理线程来处理和存储,完成后发消息到主线程来显示。数据处理线程速度不够,时间一长造成其消息队列溢出。请问有没有更好的解决方案?
处女帖,献给赐教的老师。
------解决方案--------------------
改一下模式,把收到的数据保存成文件存到固定的目录下,然后数据处理线程扫描该目录处理数据,句柄等重要信息以文件头的方式存在文件中,这样就解决处理线程消息队列溢出了吧
------解决方案--------------------
一个数据源用一个线程就可以了吧,同意楼上的观点,把数据集中保存起来,主线程自主工作就可以了,每隔几秒刷新一次。
------解决方案--------------------
不赞成1楼的方法,1楼的方法,虽然可以解决这个溢出的问题,但是会降低处理速度。
建议还是优化数据处理线程。
你也不贴出代码,没有更进一步的办法了。
------解决方案--------------------
减少其他线程的占用cpu比例,通信线程一旦发现没有新数据就sleep()释放cpu。
通信线程把收到的信息保存到一个公共(和对应数据处理线程共用)的数据区,积攒到一定量消息通知数据处理线程去处理。
------解决方案--------------------
也可能是传递数据时有问题的