Redian新闻
>
请教高级程序猿关于timer的问题
avatar
请教高级程序猿关于timer的问题# Stock
G*G
1
最近编写一个程序,有3个功能
1)每隔200ms从服务器读取一个股票数据
2)进行数据分析
3)图形显示
这个1和3是用两个timers好,还是合用一个timer好?
另外,2 需要用一个单独的timer吗?还是和1合用一个timer
如果,每隔200ms从服务器读取5个股票数据,
分别数据分析,然后分别图形显示。
请问这种情况需要分5个线程来编程吗?
avatar
y*d
2
起5个线程,分别读5个服务器的数据,每读一次睡200ms
读的结果分析以后丢进一个thread safe的数据结构
另一个线程读这个数据结构,并且update GUI
事实上系统里肯定还有一个专门负责GUI刷新,鼠标/键盘事件响应的线程
看你用神马语言/framework了,update GUI有可能必须放进这个线程来做
avatar
h*r
3
这是个typical的MVC pattern,图形显示肯定是View,数据分析计算应该在Model这层。
这里面有几点需要考虑:
1.数据分析的时间长吗,复杂吗?如果比200ms还长,一遍还没完,新数据又ready了。
2.刷新图形显示本身应该不复杂吧。还有人眼的反应时间一秒最多24帧,所以你半秒刷
新一次就行。
建议:
一个thread定时读数据,然后计算分析,结果放到cache,就是你自己的collections里
面;
另一个thread定时(每半秒)去刷新画图;算太快,画太快费时费内存,眼睛还看不过
来。
avatar
G*G
4
多谢!
分析的非常好!
每半秒更新一次,应该足以。也就是500ms.

层。

【在 h**********r 的大作中提到】
: 这是个typical的MVC pattern,图形显示肯定是View,数据分析计算应该在Model这层。
: 这里面有几点需要考虑:
: 1.数据分析的时间长吗,复杂吗?如果比200ms还长,一遍还没完,新数据又ready了。
: 2.刷新图形显示本身应该不复杂吧。还有人眼的反应时间一秒最多24帧,所以你半秒刷
: 新一次就行。
: 建议:
: 一个thread定时读数据,然后计算分析,结果放到cache,就是你自己的collections里
: 面;
: 另一个thread定时(每半秒)去刷新画图;算太快,画太快费时费内存,眼睛还看不过
: 来。

avatar
f*y
5
就一个timer吧?
单独一个timer 每200ms 到server 取一次数据(1), 每当新的数据收到后就做新的
分析(2), 分析数据出来后就关心图形(3), (1)(2)(3)就是一个sequence
不存在几个timer吧?
avatar
v*x
6
读取数据完发个信给分析的:数据在这里,分析完后给画图的发个信:更新这些数据。
timer可以放在整个流程,或者放在读取上。
avatar
d*1
7
1用timer,2和3用async足够了。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。