作者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