非阻塞调用的睡眠
我在寻找一个最佳的休眠时间,以便从一个非阻塞的套接字接收数据。例如:
while True:
data=s.recv(1024)
if not data:
time.sleep(10) #10ms
else:
pass #...
如果不休眠的话,CPU使用率会达到100%。所以有没有什么好的建议,能让CPU使用率和带宽达到最佳?休眠多长时间才能让CPU进行线程切换呢?
顺便问一下,设置套接字的缓冲区通过SO_SNDBUF/SO_RECVBUF,并且设置TCP_NODELAY,这样做有意义吗?还是说这两个设置不应该一起使用?