我想知道,如果代碼:是否select()的NULL超時比select()超時?
select(fd,..., NULL);
是CPU佔用少比一個:
struct timeval tv;
tv.tv_sec = X;
tv_tv_usec = Y;
select(fd,..., &tv);
和原因。謝謝。
編輯:我在問一個單一的電話。這是一個sys調用,所以它依賴於系統,取決於select()ing程序的系統。那麼,對於系統來說,在有或沒有超時的情況下完成選擇需要更多CPU?
如果沒有待處理的IO,並且在IO到達時將其出隊,那麼可能需要很小的懲罰來排隊信號。這個懲罰與IO本身的成本相關。一如既往,嘗試雙向和基準測試。結果將依賴於系統,甚至可能隨同一系統的負載情況而變化。 – Gene 2014-09-12 13:29:25
您可以使用'strace。/ yourprogram'來自己找出。 – Scony 2014-09-12 13:29:43
我不知道你打火機是什麼意思...... NULL值不會返回,所以循環不會旋轉,它對我來說似乎完全不相干......如果只是睡覺,直到發生什麼事情...... – 2014-09-12 13:34:51