没有登录
中国开发网: 论坛: 程序员情感CBD: 贴子 80950
haitao
已经是:一系列显示信息,多个线程负责更新这些信息,一个线程定时拿它们去显示
但没作同步

现在的问题可能出在多个线程同时更新这些信息,之间有冲突
还有那个显示的线程也可能与那些更新的线程有冲突

显示信息结构是:x,y坐标,更新标志,string内容
频繁更新的是:更新标志,string内容

还一个更危险的地方是滚动,滚动区域共n行(即n个显示信息结构)
每次更新,前n-1个显示信息结构的string内容依次去下一行来更新自己,置更新标志
拿新的信息更新到第n个显示信息结构的string内容

显示线程没100ms去检查所有的显示信息结构,如果更新标志为1则在x,y位置显示string内容
(原来,基本上每个线程都修改自己对应的显示信息结构,井水不犯河水,
只有一个状态行显示信息结构是大家都可能要修改的
所以已经相当稳定
现在各自的状态字符串变成了一个字符,位于同一个显示信息结构
而滚动区更是大家都来更新,而且一更新就要循环更新所有
冲突的机会就大多了


考虑1:
每个通讯线程自己维护一个状态字符,一个自己产生的待显示的滚动信息队列
显示线程定时把它们取出来,显示
考虑2:
作一个可靠的方法让通讯线程告知状态、加入它需要发布的滚动信息
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录