0
通常我們使用select()來等待準備讀取的套接字。但是,如果writefds也傳遞給select,那麼當fds可讀或可寫時,它將立即返回。問題是套接字在大部分時間都是可寫的。這不會導致繁忙的循環?做select() - 準備寫入fds會導致繁忙的循環?
通常我們使用select()來等待準備讀取的套接字。但是,如果writefds也傳遞給select,那麼當fds可讀或可寫時,它將立即返回。問題是套接字在大部分時間都是可寫的。這不會導致繁忙的循環?做select() - 準備寫入fds會導致繁忙的循環?
你應該等待寫入時才寫入。讀取的內容相同 - 只有當您準備好接收數據時才能讀取。在每次成功的可寫檢查之後,應該有write()
,並且在每次成功的可讀檢查之後,應該有read()
。
滿足這些標準,您不能引入繁忙的等待循環,因爲您的流不是無限的或者套接字緩衝區不是無限的。