select CPU占用太大,该怎么处理

select CPU占用太大
编写并发测试工具

创建了1000个线程,每个线程维持一个select,每个select管理64个SOCKET,但是cpu占用率高达100%,电脑卡的不能动。

每个SOCKET的动作仅仅是连接server,发送请求,等待接收,断开连接,再添加新SOCKET。。。。。

之前的设计是这样的:改小线程栈,创建4000线程,连-发-收-断-再连,也不至于电脑卡的不动

为何出现这种问题?


------解决方案--------------------
根据需求你也可以自己设计模型,不必拘泥于给你封装好的模型接口,1000个线程,每个线程中进行64次select,你不能光
for(int i=0;i<1000;i++)
{
    CreateThreadEx();
}
这么做有可能,只是可能也要看系统是什么和机器的承受能力,使得系统CPU超载。跟重要的是线程中做了什么。
实在觉得你的模型不太好改,试试线程池
------解决方案--------------------
是不是出现了死循环?或由于条件的判断导致了continue?检查一下,不会无故100%的情况的,不过你的线程数太多太多了,必须要改进的,