作者billyeh (bill)
看板CSSE
標題Re: 以前問過的問題...OS
時間Mon Jul 25 10:55:15 2005
: 推 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)
1F:推 UNARYvvv:記得有種東西叫 asynchronous procedure call.. 61.70.137.117 07/25
2F:→ UNARYvvv:可以應用在 asynchronous I/O 的完成時去呼叫的 61.70.137.117 07/25
3F:→ UNARYvvv:completion routine 61.70.137.117 07/25
4F:→ UNARYvvv:想想確實跟另外開一 thread 完成IO 有明顯不同 61.70.137.117 07/25
5F:推 ykjiang:第一種作法比較有效率,事實上我個人感覺也比較뼠 211.20.97.42 07/25
6F:→ ykjiang:親切些。 211.20.97.42 07/25
7F:→ ykjiang:Java 的 GUI 架構主要也是採用第一種作法, 211.20.97.42 07/25
8F:→ ykjiang:但它也有提供語言層次的 thread 支援 211.20.97.42 07/25
9F:→ ykjiang:所以它們該有各自適用的場合! 211.20.97.42 07/25