看板 PttCurrent 關於我們 聯絡資訊
※ 引述《beagle.bbs@ptt.cc (紅茶犬)》之銘言: : 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