首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

socket recv拥塞时是否占用CPU

2012-12-14 
socket recv阻塞时是否占用CPU本帖最后由 VisualEleven 于 2010-12-09 15:48:34 编辑客户端,在使用阻塞模

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));
[其他解释]

引用:
那就是阻塞时还是占用CPU时间,只是时间片到了切换到其他线程?

那我设置超时,如果超时,主动sleep放弃CPU,这样应该可以减少CPU占用吧。

正解
[其他解释]
那就是阻塞时还是占用CPU时间,只是时间片到了切换到其他线程?

那我设置超时,如果超时,主动sleep放弃CPU,这样应该可以减少CPU占用吧。


[其他解释]
引用:
int nTimeOut = 3000; // 超时值为3s
setsockopt(SOCKET, SOL_SOCKET, SO_RCVTIMEO, (char*)&nTimeOut, sizeof(nTimeOut));


恩,我已经修改好了。
[其他解释]
大数据处理,内存计算,云计算,云存储,云会议技术研究群123749520

热点排行