都说了是池机制,有上限的嘛,达到池的上限,自然就不会在起新的线程了

解决方案 »

  1.   

    蹭点分算了,打了这么多字,该不会不结帖吧?
      

  2.   

    在accept前后加入日志,当客户端connect的时候,看看accept是否完成了,如果accept已经返回了新socket句柄,就说明操作系统还有资源可用,说明问题不在操作系统,在你的程序,看看你的线程池实现年方式,加入日志,应该很容易看出来;
       如果accept没有返回,说明操作系统已经到达最大的socket句柄数,不是你程序的问题。换资源更强大的机器;
       另外用抓包工具辅助wireshark测试一下,看看底层数据包到达的情况。如果你的日志很完善,这一步并不是必须的
      

  3.   

    好的线程池理论上是没有上限的,楼上说的很有道理,你可以试一下
      

  4.   

    不要全把精力放在你自己的代码上,尽可能想想所有可能的因素.