作者kxn (kxn)
看板PttCurrent
标题Re: 不知道是否可以询问一下贵站平时的负载情况
时间Sat Jan 22 10:26:33 2005
※ 引述《in2 (敬请期待 :P)》之铭言:
: ※ 引述《kxn (kxn)》之铭言:
: : 但是怎麽activate对方呢﹖直接kill就失去意义了﹐给fd上面写东西就打架了
: 我们现在水球就是直接写对方的 shared-memory 再 kill 它呀~
: 看不出来这样子做有什麽不好?
signal 还是比较浪费 cpu 的哦, 如果有办法让 block 中的 fd 操作马上返回一下就好了
: : 说起来 Windows 这里倒是蛮好做的﹐WaitForMultipleObjects 各色东西都可以
: : fd 也好﹐ mutex 也好﹐能一起 wait
: UN*X 底下一般是用 select(2) 来做,
: 如果你用 FreeBSD的话,
: 有个更强力的 kqueue(2)可以用~
nono, select 只能在 fd 上边用﹐但是 win 的 WFMO 可以同时用在各种类型 handle
上面﹐例如我可以同时 wait 一个 fd 来 data 和一个 process exit 的两种不同事件
kqueue 和 epoll 这类东东其实在处理很少量 fd 的时候也没啥太大用处﹐
select 已经够用了﹐不过好像有一些细微不同﹐select 是 level triggered
而 epoll 可以当 edge triggered 的用, 就是说﹐如果我这次没有把 data 读完﹐
那麽下次调 select 他还是马上返回﹐而 epoll 有两种用法﹐可以只返回一次的
在用 non-blocking 的 sockets 时候比较好用一些
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.149.27.137