回 帖 发 新 帖 刷新版面

主题:[讨论]求教一个线程池处理的思路?

应用环境是这样的:服务端有一个MessageBusiness类的实例msgbus,这个实例专门负责与客户端进行通信,服务端仅能有这个msgbus实例.MessageBusiness类主要有Register、SendMessage、UnRegister三个方法和一个记录客户端IP的数组ips。当客户端首次连接到服务端时,调用MessageBusiness类的Register方法注册这个客户,并把他的IP地址记录到数组ips中.当客户端要通信时调用SendMessage方法.当注销时就调用UnRegister方法注销自己.ips在这三个函数中都有用到.现在想在MessageBusiness类中加入线程池机制,当一个客户端首次连接到服务端时,就给这个客户分配一个线程(既把这个客户端加入到线程池中)直到调用UnRegister函数.即实现一个客户端的生命周期就是一个线程的生命周期.现在的问题是怎么加入这个线程池机制实现一个客户端的生命周期就是一个线程生命周期的想法?

回复列表 (共2个回复)

沙发

UnRegister强制结束线程

不过让SendMessage进行操作时从线程池中创建线程而不是一个客户对应一个线程不是更好么,避免浪费

板凳

谢谢了,我现在添加了三个与Register、SendMessage、UnRegister这三个方法签名一样的委托,利用委托的异步调用来解决多个客户端同时调用服务端某个方法的问题.我觉的这应该比用线程池来解决并发问题更好.我今天才知道异步调用的好处了~~~~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册