Re: 以前問過的問題...OS

看板CSSE (電腦科學及軟體工程)作者 (bill)時間20年前 (2005/07/25 10:49), 編輯推噓2(207)
留言9則, 2人參與, 最新討論串6/6 (看更多)
: 推 ykjiang:所以這是針對 server 程式的描述 其實不只是 server 程式, 凡是需要有 asynchronous、non-blocking、concurrent 特性的程式, 通常都會有兩種選擇: 1. 用 event-driven、callback 的方式, 搭配 state machine 以記錄/保留 context 2. 用 thread 方式 : 能否請原貼幫忙解惑一下, : 如果能舉個簡單的例子當然更好了 :) 第一種方式, 你可以回想一下 X Window 和 MS Windows 的標準程式寫法。 也不妨想想, 哪一種方式比較瑣碎。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.23.101 ※ 編輯: billyeh 來自: 140.113.23.101 (07/25 10:56)

61.70.137.117 07/25, , 1F
記得有種東西叫 asynchronous procedure call..
61.70.137.117 07/25, 1F

61.70.137.117 07/25, , 2F
可以應用在 asynchronous I/O 的完成時去呼叫的
61.70.137.117 07/25, 2F

61.70.137.117 07/25, , 3F
completion routine
61.70.137.117 07/25, 3F

61.70.137.117 07/25, , 4F
想想確實跟另外開一 thread 完成IO 有明顯不同
61.70.137.117 07/25, 4F

211.20.97.42 07/25, , 5F
第一種作法比較有效率,事實上我個人感覺也比較뼠
211.20.97.42 07/25, 5F

211.20.97.42 07/25, , 6F
親切些。
211.20.97.42 07/25, 6F

211.20.97.42 07/25, , 7F
Java 的 GUI 架構主要也是採用第一種作法,
211.20.97.42 07/25, 7F

211.20.97.42 07/25, , 8F
但它也有提供語言層次的 thread 支援
211.20.97.42 07/25, 8F

211.20.97.42 07/25, , 9F
所以它們該有各自適用的場合!
211.20.97.42 07/25, 9F
文章代碼(AID): #12v5Cvm6 (CSSE)
文章代碼(AID): #12v5Cvm6 (CSSE)