P
poy
Unregistered / Unconfirmed
GUEST, unregistred user!
这几天看了他的书(Delphi 5.X 分布式多层应用 系统篇), 经过实践,
有些和他说的有些出入!
在做一个三层结构的程序时 ,服务端的数据模块的线程模式设为Apartment
Instancing 设成ciMultiInstance ,照他书上写的如果有多个客户端启动 ,
那么在服务端只有一个数据模块(即一个ApartMent)的实例来为这些客户
服务,他说这样其实并没有实现Apartment的功能,如果想要真正发挥出威力
就应该要在服务端有多个线程来为客户服务 !
我的问题来了 :我怎么在服务端创建多个线程来为不同的客户服务?
在上机实验后我发现其实启动多个客户程序时 ,为每个客户服务的数据
模块(Apartment)都是不同的,即使我的线程式模式设成Single 也一样 ,
在这本书第6章有个例子,说在两个客户程序中有6个线程(一个客户程序有3个)
访问服务端 , 结果是每个线程都要等其它线程结束才能开始 ,可我的结果是
一个客户端程序中的3个线程要依次访问服务端,可另外一个客户中的3个线程
也是依次访问服务端但和前一个客户程序是同步的 ,也就是说这两个客户访问
的Apartment是不同的,用其它方法也可以证明 .
是我错了?错哪了 ? 还是李维写错了 ?
另外我一直找不到 delphi/demo/midas/pooler 这个目录下的那个Server端程序,
是怎么实现 Pooler 功能的 ,虽然我能看到Pooler.pas ,但是在TlB中仅仅是定
义了 Pooler这个类 来实现接口而已 ,并没有找到使用了Pooler的代码。我想这
可能是找到我的疑惑的答案 .
请各位高手帮忙!
有些和他说的有些出入!
在做一个三层结构的程序时 ,服务端的数据模块的线程模式设为Apartment
Instancing 设成ciMultiInstance ,照他书上写的如果有多个客户端启动 ,
那么在服务端只有一个数据模块(即一个ApartMent)的实例来为这些客户
服务,他说这样其实并没有实现Apartment的功能,如果想要真正发挥出威力
就应该要在服务端有多个线程来为客户服务 !
我的问题来了 :我怎么在服务端创建多个线程来为不同的客户服务?
在上机实验后我发现其实启动多个客户程序时 ,为每个客户服务的数据
模块(Apartment)都是不同的,即使我的线程式模式设成Single 也一样 ,
在这本书第6章有个例子,说在两个客户程序中有6个线程(一个客户程序有3个)
访问服务端 , 结果是每个线程都要等其它线程结束才能开始 ,可我的结果是
一个客户端程序中的3个线程要依次访问服务端,可另外一个客户中的3个线程
也是依次访问服务端但和前一个客户程序是同步的 ,也就是说这两个客户访问
的Apartment是不同的,用其它方法也可以证明 .
是我错了?错哪了 ? 还是李维写错了 ?
另外我一直找不到 delphi/demo/midas/pooler 这个目录下的那个Server端程序,
是怎么实现 Pooler 功能的 ,虽然我能看到Pooler.pas ,但是在TlB中仅仅是定
义了 Pooler这个类 来实现接口而已 ,并没有找到使用了Pooler的代码。我想这
可能是找到我的疑惑的答案 .
请各位高手帮忙!