協(xié)程庫state threads library(以下簡稱st)是一個基于setjmp/longjmp實現(xiàn)的C語言版用戶線程庫或協(xié)程庫(user level thread)?;窘榻B在這 http://state-threads.sourceforge.net/docs/st.html。這里有一個基本的協(xié)程例子 http://www.csl.mtu.edu/cs4411.ck/www/NOTES/non-local-goto/coroutine.html, 可以了解setjmp和longjmp的基本用法。如還有不懂,請自行查閱其他資料。

從中可以看出,IA(Internet Application)架構(gòu)演化歷史:

1.多進程MP

以Apache為代表的web server。創(chuàng)建進程服務(wù)新用戶,開銷過高。調(diào)度單位是進程。

2.多線程MT

創(chuàng)建新線程服務(wù)新用戶,線程間上下文切換,鎖競爭等等,增加了額外開銷。調(diào)度單位是線程。

3.事件驅(qū)動狀態(tài)機EDSM

基于IO復(fù)用機制,實現(xiàn)大量并發(fā)請求的處理。但程序是一體的,并不是基于線程,新程序需要從頭開始。該模式下主要使用回調(diào)和狀態(tài)參數(shù)來進行上下文切換,實際上是以一種非常艱難和痛苦的方式實現(xiàn)了類似線程和棧的思想。ESDM最大的問題是其“將線性思路分解成大量的回調(diào)所固有的復(fù)雜性”,導(dǎo)致程序難以實現(xiàn),擴展和維護。

傳統(tǒng)EDSM程序架構(gòu):

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式