socket recv阻塞时是否占用CPU
本帖最后由 VisualEleven 于 2010-12-09 15:48:34 编辑 客户端,在使用阻塞模式socket时,每一个SOCKET连接用一个线程recv接受数据
多线程SOCKET,如果没有数据,recv阻塞,这个时候是否会占用CPU?
目前在手机上CPU占用过高,不知道是否和这个有关?
我给recv设置超时时间,如果超时就sleep一下,然后再recv,这样是否可行。
只讨论阻塞模式下的recv.
[最优解释]
阻塞的时候线程还是会处在可调度状态,会占用CPU,如果开的线程不是很多的话,recv阻塞的话影响应该不会很大的
[其他解释]
int nTimeOut = 3000; // 超时值为3s
setsockopt(SOCKET, SOL_SOCKET, SO_RCVTIMEO, (char*)&nTimeOut, sizeof(nTimeOut));
[其他解释]