看板PttCurrent
標 題Re: select() 來等 timeout 的好處
發信站HKDAY (Tue Jun 7 19:35:46 2005)
轉信站ptt!Group.NCTU!grouppost!Group.NCTU!hkday
※ 引述《[email protected] (紅茶犬)》之銘言:
: select() 來等 timeout 的好處是
: 1. 不需用到 SIGALARM 因此不會出現 race condition...
: (sleep() 會用到 SIGALARM)
: 2. 計時精確度高
: 3. Kernel scheduler 支援這種 wake up 方法, 因此 performance 也相當好
: 這作法我記得是在 Richard Stevens 的 UNIX Network Programming 裡面看到的,
: 書中有詳細的 performance 比較... 因此我深信不疑...
: 目前我自己寫的 code 全部是用 select() 來替代 sleep()
謝謝指教.
有空閒也試試用 pselect() 吧, 精度高得有點浪費, 但好處是用 sigmask
防止了某些步趨之間的 race.
: * * *
: 如果要應用到 BBS 動畫上, 大量 context switch 是必定免不了的,
: 因此我同意 smartboy 的說法, 這樣的大幅浪費資源, 沒有必要...
: 因為頻寬/網路不良問題造成的斷線也更容易在看動畫時出現...
其實這點之上, 觀看動畫文章而不良斷線, 也會是個考驗.
當自動播放普及到某個水平, 以 ptt的人口, 發生數十人甚至數百人
呆在動畫畫面, 是有可能的. (現在的code沒有implement loop吧? 會簡化一點)
: 但是以小站來說, 資源原本就過剩, 也許可以考慮。
對, 小站的角色就是跟大站不同.
: 真的要做, 後面大量給 terminal function 動手術改成 non-blocking I/O
: 的過程才真的讓人受不了。
嗯... mt...? 其實不用的, 只是一個 cron發signal 而已.
--
※ 發信站: 香港地(hkday.net)
◆ From: 203.195.92.45