使用usleep來暫停一會。
一般用于線程循環的時候切換當前線程,讓出CPU給其它線程,不會導致死鎖也能充分利用CPU。
但在高性能程序中,usleep不可用,其會讓你的線程在不必要的時候被切換出去。最明顯的例子是做網絡數據接收。
如果你的程序在收數據等到一個pending的時候退出接收等待下個事件,如果這個時候你使用usleep,那么線程就可能被切換出去10ms,導致你本來應該及時處理的數據沒有及時處理而導致程序的吞吐量降低。
這個時候使用epoll或select來替換。
所以usleep使用的時候一定要注意;另外最好用nanosleep來替換。