usleep不可用

usleep不可用

使用usleep来暂停一会。
一般用于线程循环的时候切换当前线程,让出CPU给其它线程,不会导致死锁也能充分利用CPU。
但在高性能程序中,usleep不可用,其会让你的线程在不必要的时候被切换出去。最明显的例子是做网络数据接收。
如果你的程序在收数据等到一个pending的时候退出接收等待下个事件,如果这个时候你使用usleep,那么线程就可能被切换出去10ms,导致你本来应该及时处理的数据没有及时处理而导致程序的吞吐量降低。
这个时候使用epoll或select来替换。

所以usleep使用的时候一定要注意;另外最好用nanosleep来替换。

你可能感兴趣的:(usleep不可用)