如果没Sleep的话,你创建了一个新线程,创建新线程的同时,当前线程闷大让仿卖也在运行,socket都蚂局被你关掉了,还怎么send??
线程跟函数是不同的,函数是等调用结束后才执行下一个语句
你这种是用的阻塞模式,就是 Accept和败州Receive 都会卡住不动,直到有新连接或者有新数据。实际使用场景中,阻塞模式,一个线程专门Accept 有新的连接之后,为每一个圆蔽连接再创建一个线程来处理 Receive,也就是对于服务器来说,假设当前有10个工作的连接,那么至少需要11个线程。
你只需要开几个专门的线程来橘枯州负责接受连接和接收数据就可以了。
这种阻塞模式不适合大并发量的网络程序,测试小程序没问题,大并发量时需要使用非阻塞模式,比如一般常用的select模式
百度 “select模型” 就可以搜到。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)