不知道怎样构件和使用线程池,特别是当闲置线程多的时候,该怎样关闭其中的几个呢?

解决方案 »

  1.   

    那你说说我这个方案该如何解决,分不是问题.
    完成端口服务端:
    我每次接收到数据时,都有一个分析数据的过程,根据分析得到的指令作出相应的回应,处理过程有长有短,我不可能就在接收线程里处理这些,必须另开线程进行处理,这就牵涉到线程的创建,然而创建又费CPU时间,所以想到用事先创建好的线程来进行处理,而且预先创建的不止一个线程,少了又怕不够,多了又费资源,所以想到动态控制.你有什么好的方法说来听听.分不是问题.
      

  2.   

    1:使用WINDOWS提供的线程池函数。比如QueueUserWorkItem。线程数目的控制这些,都有参数可以控制的,详细的可以看MSDN。
    2:自己使用完成端口来实现一个线程池。这个编程和使用QueueUserWorkItem相比要复杂一点。不过两者的本质差不多,QueueUserWorkItem内部也是用完成端口实现的。这里有代码可以参考:http://support.microsoft.com/default.aspx?scid=kb;en-us;1977283:也可以用别的方法创建线程池,不过我觉得没有必要,上面两种方法已经很好了。