看板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