求老师指导,大量数据通过TCP接收到后显示和存储的问题
时间:2011-11-23
来源:互联网
主线程是一个客户端,通过TCP连接到多个不同的数据源接收数据。我针对每一个数据源分别使用一个通信线程和一个数据处理线程,通信线程接收到数据后发送线程消息到数据处理线程来处理和存储,完成后发消息到主线程来显示。数据处理线程速度不够,时间一长造成其消息队列溢出。请问有没有更好的解决方案?
处女帖,献给赐教的老师。
处女帖,献给赐教的老师。
作者: runnerdu 发布时间: 2011-11-23
改一下模式,把收到的数据保存成文件存到固定的目录下,然后数据处理线程扫描该目录处理数据,句柄等重要信息以文件头的方式存在文件中,这样就解决处理线程消息队列溢出了吧
作者: funxu 发布时间: 2011-11-24
一个数据源用一个线程就可以了吧,同意楼上的观点,把数据集中保存起来,主线程自主工作就可以了,每隔几秒刷新一次。
作者: babydog01 发布时间: 2011-11-24
不赞成1楼的方法,1楼的方法,虽然可以解决这个溢出的问题,但是会降低处理速度。
建议还是优化数据处理线程。
你也不贴出代码,没有更进一步的办法了。
建议还是优化数据处理线程。
你也不贴出代码,没有更进一步的办法了。
作者: mjp1234airen4385 发布时间: 2011-11-24
减少其他线程的占用cpu比例,通信线程一旦发现没有新数据就sleep()释放cpu。
通信线程把收到的信息保存到一个公共(和对应数据处理线程共用)的数据区,积攒到一定量消息通知数据处理线程去处理。
通信线程把收到的信息保存到一个公共(和对应数据处理线程共用)的数据区,积攒到一定量消息通知数据处理线程去处理。
作者: lhylhy 发布时间: 2011-11-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28