libgod

協程是協作式調度,大部分情況下是不需要加鎖的。 libGod多執行緒版雖然也是基於協程,但因為夾雜著多執行緒的搶占式調度,所以處處還是需要加鎖。 而單執行緒版就是單純的協作式調度,所以絕大部分情況可以不用加鎖。

內容介紹

libGod 是一個全異步+協程機制實現的網路庫,適用於windows、linux、bsd等多種平台。內部使用IOCP、epoll、kqueue等系統調用管理事件機制,同時巧妙的利用協程,將複雜的異步邏輯轉換為同步,使用起來非常簡單。libGod致力於為遊戲、雲計算等高並發伺服器提供一個高性能而且簡單易用的底層,封裝了多執行緒,IO,記憶體緩衝區等複雜邏輯,上層套用只要專注寫邏輯,使用libGod很容易就可以開發出一個高性能高並發的伺服器 。

版本變更

從2.0版本開始,有兩個大的變化:
1.為了加快開發進度,暫時去除了linux以外平台的支持,專注於linux平台的開發。
2.分出了單執行緒和多執行緒版本。我們專門針對單執行緒進行了特殊最佳化,調度性能比多執行緒版本高。單執行緒版還有一個很大的優勢就是邏輯更簡單了。現在很多系統的執行緒是搶占式的調度,訪問共享資源就免不了加鎖。協程是協作式調度,大部分情況下是不需要加鎖的。而了解我們項目的應該都知道,libGod整個框架是基於協程驅動的。libGod多執行緒版雖然也是基於協程,但因為夾雜著多執行緒的搶占式調度,所以處處還是需要加鎖。而單執行緒版就是單純的協作式調度,所以絕大部分情況可以不用加鎖。

相關詞條

相關搜尋

熱門詞條

聯絡我們