G***G 发帖数: 16778 | 1 最近编写一个程序,有3个功能
1)每隔200ms从服务器读取一个股票数据
2)进行数据分析
3)图形显示
这个1和3是用两个timers好,还是合用一个timer好?
另外,2 需要用一个单独的timer吗?还是和1合用一个timer
如果,每隔200ms从服务器读取5个股票数据,
分别数据分析,然后分别图形显示。
请问这种情况需要分5个线程来编程吗? |
y*d 发帖数: 2226 | 2 起5个线程,分别读5个服务器的数据,每读一次睡200ms
读的结果分析以后丢进一个thread safe的数据结构
另一个线程读这个数据结构,并且update GUI
事实上系统里肯定还有一个专门负责GUI刷新,鼠标/键盘事件响应的线程
看你用神马语言/framework了,update GUI有可能必须放进这个线程来做 |
h**********r 发帖数: 22 | 3 这是个typical的MVC pattern,图形显示肯定是View,数据分析计算应该在Model这层。
这里面有几点需要考虑:
1.数据分析的时间长吗,复杂吗?如果比200ms还长,一遍还没完,新数据又ready了。
2.刷新图形显示本身应该不复杂吧。还有人眼的反应时间一秒最多24帧,所以你半秒刷
新一次就行。
建议:
一个thread定时读数据,然后计算分析,结果放到cache,就是你自己的collections里
面;
另一个thread定时(每半秒)去刷新画图;算太快,画太快费时费内存,眼睛还看不过
来。 |
G***G 发帖数: 16778 | 4 多谢!
分析的非常好!
每半秒更新一次,应该足以。也就是500ms.
层。
【在 h**********r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这是个typical的MVC pattern,图形显示肯定是View,数据分析计算应该在Model这层。 : 这里面有几点需要考虑: : 1.数据分析的时间长吗,复杂吗?如果比200ms还长,一遍还没完,新数据又ready了。 : 2.刷新图形显示本身应该不复杂吧。还有人眼的反应时间一秒最多24帧,所以你半秒刷 : 新一次就行。 : 建议: : 一个thread定时读数据,然后计算分析,结果放到cache,就是你自己的collections里 : 面; : 另一个thread定时(每半秒)去刷新画图;算太快,画太快费时费内存,眼睛还看不过 : 来。
|
f******y 发帖数: 265 | 5 就一个timer吧?
单独一个timer 每200ms 到server 取一次数据(1), 每当新的数据收到后就做新的
分析(2), 分析数据出来后就关心图形(3), (1)(2)(3)就是一个sequence
不存在几个timer吧? |
v****x 发帖数: 53 | 6 读取数据完发个信给分析的:数据在这里,分析完后给画图的发个信:更新这些数据。
timer可以放在整个流程,或者放在读取上。 |
d**********1 发帖数: 569 | |