欢迎光临
我们一直在努力

关于线程池-.NET教程,评论及其它

建站超值云服务器,限时71元/月

偶目前对于线程池的理解

在多线程程序中,如c/s模式中的server端最好用线程池来提高程序性能,

在程序起动时创建一定数量的线程以备使用,

socket侦听到连接后把连接放入一个全局client socket列表中,

使用socket.select把有可读数据的client socket存入一个临时列表中,

循环client socket取出每个连接放入(向线程传参数,还是其它方法?还没研究过)事先建立好的空闲的线程中处理。处理完线程设回空闲等待下一个任务。

这样做的好处是可以使用非阻塞的socket

以前为每个客户端建立一个线程,在维护客户端连接的有效性方面很麻烦,使用了很多线程,但其实线程在很多时候都是处于阻塞等待客户端数据状态,浪费系统资源。

使用非阻塞socket在receive到0数据时应该可以认为socket连接以断开(未证实)

使用线程池,在需要处理数据时把处理任务交到挂起中的线程中,处理完成后在挂起等待下个任务。这种方式更加能有效的使用系统资源。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 关于线程池-.NET教程,评论及其它
分享到: 更多 (0)

相关推荐

  • 暂无文章