成千的客户端,那么就要用IO多路复用等,不能一个客户端就一个线程,用IOCP+线程池
你不会是每连接就开一个线程吧? 这种实现的优点是响应速度特别快,而且均衡,抗攻击能力强 但是缺点是,系统资源开销大,只适合小规模服务,例如100-200人左右 你要执行海量服务, 应该采用类似ngix这样的实现 把每个连接的数据部分独立出来,根据cpu核心数量开启执行线程,一个连接对应一个数据结构而不是线程 一般采用epoll 或者 overlap/io等异步消息驱动 优点是对用户连接数量不敏感,可以支持大量的用户并发连接 缺点是 如果某几个连接属于恶意连接并连续发送某些特定攻击指令,或者你自己的处理线程写的不够周全 遇到攻击很容易出现"服务暂停"这种情况,或者过载
代码问题,自己找原因。
[quote=引用 1 楼 worldy 的回复:] 不能这么算的,当线程更多后,每个线程所占的比例会跟随下降
不能这么算的,当线程更多后,每个线程所占的比例会跟随下降
15,471
社区成员
49,181
社区内容
加载中
试试用AI创作助手写篇文章吧