我已经开了100个线程,为什么效率很低? ( 积分: 120 )

  • 主题发起人 牛头12236
  • 开始时间
我不知道你所说的“较精确的周期模拟”是什么含意,如果不考虑这个我觉得你用一个循环都可以
 
在Win2000中,你是可以把自己的进程优先级设置为实时级的,
设置后,如果你的进程或线程不让出CPU控制权,别人是抢不走的
至于脚本优化,倒是有个办法,
你可以自己写一个语法解析器,
将脚本翻译成 delphi 语句,
然后,生成一个特殊的 dpr 文件,
调用delphi的编译器编译成DLL,
这要求机子上需要安装Delphi,
其编译速度也很快,用户修改完脚本后马上进行翻译,并编译为DLL
这样,效率和性能就会有很大的提高了
 
我上面的代码主要是解决并发的问题,通过论循也可以达到同样的功能,但是效率肯定要低的。至于你程序当中的算法,可能你自己解决是最好的,因为只有你知道要做什么。组播主要是用做在同一组中,所有发送到这个组的数据只有一份拷贝,我估计对于你的并发应该是比较有用的,但是有一个前提,就是所有的客户端和服务端都是在LAN里面,如果在因特网上面,就需要路由器的支持了。我能做的只有这么多,希望能够对你有些帮助!
 
用select io,线程不要开这么多,两三个足已,一个用来接收socket数据就好了
 
to tseug:
>>我不知道你所说的“较精确的周期模拟”是什么含意,如果不考虑这个我觉得你用一个循环都可以
我的意思是程序应优先保证控制站内部数据更新,客户端请求其次。
to lich:
如果要求客户在服务器端安装一个Delphi没问题,你提的方案我试试跟老大商量一下。
to 寻路:
多谢路兄,网络编程方面我一窍不通,我会多花点时间抓紧学习一下的,因为你讲的我一点也听不懂,:p
to wbtvc:
不好意思,select io 是什么东西啊,:)
 
多谢各位大虾,前天晚上我把系统框架设计成这样,请大虾多多指点:
控制站 1 的内部数据
|
控制站数据访问引擎(采用一个写多个读的同步方式,这是在<<Windows核心编程>>上看的,不知道有没有更好的方法,比如多个写多个读?)
|
 采用完成端口通讯(正在学<<Windows网络编程>>, :)
/ | | |
客户端1 客户端2 客户端n 控制站内部数据更新操作(在服务器上运行)
 
多谢各位!
 
再次感谢,谢谢!
 
顶部