skynet源碼分析1:開篇明義

原文鏈接:https://www.cnblogs.com/watercoldyi/p/5797539.html

skynet雲風基於actor模型實現的一個服務器框架,核心七千多行c代碼,並提供了一個lua binding。寫得比較簡明,用起來比較爽快,很合我的胃口,再加之決定在公司最近的一個項目上skynet,所以就決定精讀一遍源碼,將所思所想所得記錄於此,以便用起來心安理得。

skynet的實現基於如下幾條actor行爲:

  • 能創建,銷燬其它actor,actor間爲平級關係。
  • 能發送消息給其它actor,能接收其它actor的消息。
  • actor間的交互只能通過消息傳遞。
  • 能處理自己的消息。

在skynet的世界裏,actor用動態庫來表示,每個so加載後,都會被賦予一個永不重複([1,4G])的id作爲標識,so必須向框架註冊一個回調函數用於處理消息。框架只做兩件事:

  1. 將發送的消息正確送達目標actor。
  2. 均衡快速的調用so的回調處理消息,這個回調不會併發,且每次只處理一條消息。

未完待續,有不當之處,請各位道友指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章