牛
牛头12236
Unregistered / Unconfirmed
GUEST, unregistred user!
最近公司要求我开发一个项目,服务器端需要模拟运行一百台控制站,这些控制站编号从1到100,每隔一个周期(比如500MS)按照一定的算法更新每一台控制站中的数据,实时性要求很高,并且响应客户端请求要快。
控制站数据定义如下:
DataArray_A: array[0..100 - 1] of array[0..450000 - 1] of Integer;
DataArray_B: array[0..100 - 1] of array[0..6000 - 1] of Integer;
DataArray_C: array[0..100 - 1] of array[0..60 - 1] of Integer;
另外还有提供给这些控制站共享的数据定义如下:
Data_Share_A: array[0..100 * 2000] of Integer;
Data_Share_B: array[0..100 * 2000] of Integer;
客户端通过COM+技术与服务器端通信,并与这一百个控制站其中一个进行通信。
我是这样做的:在服务器端运行时创建了一百个线程,这些线程只负责每隔一定的周期更新对应的控制站的数据,更新数据的算法是用脚本写的,也就是说每个线程每个周期时间内负责调用一次脚本控件的执行方法,并且我并没有加入书上说的线程同步技术。
可是出现问题了,第一个是控制站数据无法实时地刷新,单单是更新内部数据就花了三四百毫秒,可是周期最快可以设置成500毫秒;还有一个是客户端访问一段时间后会异常结束,这都是大问题啊,请大虾们帮帮我。
控制站数据定义如下:
DataArray_A: array[0..100 - 1] of array[0..450000 - 1] of Integer;
DataArray_B: array[0..100 - 1] of array[0..6000 - 1] of Integer;
DataArray_C: array[0..100 - 1] of array[0..60 - 1] of Integer;
另外还有提供给这些控制站共享的数据定义如下:
Data_Share_A: array[0..100 * 2000] of Integer;
Data_Share_B: array[0..100 * 2000] of Integer;
客户端通过COM+技术与服务器端通信,并与这一百个控制站其中一个进行通信。
我是这样做的:在服务器端运行时创建了一百个线程,这些线程只负责每隔一定的周期更新对应的控制站的数据,更新数据的算法是用脚本写的,也就是说每个线程每个周期时间内负责调用一次脚本控件的执行方法,并且我并没有加入书上说的线程同步技术。
可是出现问题了,第一个是控制站数据无法实时地刷新,单单是更新内部数据就花了三四百毫秒,可是周期最快可以设置成500毫秒;还有一个是客户端访问一段时间后会异常结束,这都是大问题啊,请大虾们帮帮我。