※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言:
> > void main()
> > {
> > framework_init();
> > Instance_init();
> > while (event_occur())
> > {
> > dispatch_event();
> > }
> > }
> 假設 event_occur() 在某個時間點或事件狀況下為 true , 所以 dispatch_event()
> 就對應被啟動執行.
> A. 是等這個 dispatch_event() 一執行, 對應的 event_occur() 原 true 狀態
> 1. 很快就被清除
> 或
> 2. dispatch_event 完成之後, 才可能改變或不變
event_occur()這裡的用法就像是windows的WaitMessage()
有訊息/event要處理的時候才會回傳, idle的時候是處於suspend狀態的
至於回傳值是唯有程式要結束時才會回傳false
> B. 下一個 while loop 再 check 的時間是等 dispatch_event()
> 1. 完成
> 或
> 2. 部份完成
> 就能回到 while loop 做下一個 check ?
我想這沒有多大疑問吧
以while (A) B; 為例, 當然是B跑完之後才會重新check A
> C. 下一次 event_occur() 的執行是必需等 dispatch_event()
> 1.完成之後
> 或
> 2.未完成
> 就可以有 event_occur() 又產生 true status ?
> 假如 dispatch_event 可以發出請求給另一部機器 X 做事, 只要發出通知, 不等事
> 做完, 就回到 while loop . 而 event_occur() 的產生, 假設是由另一部機器 A
> 執行, 假如產生與否是跟前一個 event 無關的, 那這個新 event 就會由 dispatch
> 啟動出另一部機器 Y 去做事. 此時, X 與 Y 就可能會 "同時做不同的事".
X跟Y既是兩台機器 當然可以同時做不同的事
就算是同一台機器的同一個程式, 也有可能有兩個thread 同時執行類似以上的
event loop. 但是重點是thread 本身是循序的. 我想說明的是, 像gsj此類因為不了解
framework內部的機制而誤認framework為非循序的, 是一件多麼可笑的事.
循序化是gsj自己提出的, 他自己也無法給出一個完整的定義(沒有main() ? 哈哈)
所以我也只是猜測他最可能的定義來反駁. 我想..任何一個有大腦的人都會知道
幾乎世界上所有的language,都是他所謂的循序化. 包括C++/C/Java/Pascal/Perl/Python
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: NK219-91-72-93.adsl.dynamic.apol.com.tw