【CSDN報導】 2013中國軟體開發者大會(以下簡稱SDCC)於8月30-31日在北京新雲南皇冠假日酒店舉辦。作為CSDN和《程式設計師》雜誌傾力打造、千人規模以上的頂級技術盛會,今年SDCC 2013以「軟體定義未來」為主題,來自於國內外一線的技術精英,就大數據分析與BI、架構實踐、研發管理、IT基礎設施與運維、產品與設計、開放平臺等專題和參會者進行了深入的分享和探討。此外,32小時編程馬拉松、CTO論道論壇等量身定製的特色環節也受到了參會者的強烈關注。
簡悅聯合創始人 雲風
在第二天的程式語言與工具專題論壇上,簡悅聯合創始人云風帶來題為《Skynet:一個基於Actor模式的開源並發框架》的主題演講。雲風認為,Actor方式就是你需要把在伺服器並行處理的任務分成很多更細小的單元,每個單元有個程序來考察。這些Actor之間為了共同做一件事情,它並不是用傳統的多線程方式來工作的,所有的Actor之間都是相互傳遞消息的方式,每個actor都可以看成是一個獨立的進程去處理一個消息隊列。
「現在CPU的核數越來越多,但CPU的主頻卻沒有上升。在傳統並行編程中,兩核或者四核的時候,大家都做多線程的編程,在多線程的編程中用的最多的就是如果幾個核心同時要改一個數據,我們會給這個數據上鎖,然後處理完後再解鎖。這種方式我覺得有一定麻煩。後來在做Skynet的時候我自己受Erlang影響較多,Erlang是一個比較高可用性的並且分布式的處理,可以把Erlang節點部署在很多機器上,所以Skynet最初在設計時我們是在Erlang的基礎上來做一些開發,當然現在是完全用C語言編寫的一個框架了。」雲風介紹說。
分布式處理可能需要很多的數據,要處理很多東西,它們很大程度上可以分開來完成。但是並行處理則需要使同一臺物理機器上有很多的核心,協作完成原來要完成的事情,且需要很快的完成。雲風表示,Skynet發展到今天,是更想強調它的並行處理能力,可以更好的運行同一臺機器上的更多的核心來更高效完成任務。在做網路遊戲的時候,它處理的業務量沒有搜尋引擎或者其他處理的數據量那麼大,但是它需要所有用戶連到伺服器上,需要有更快的響應速度。比如玩遊戲的時候,打一個怪,在0.5秒鐘之內都不知道打到這個怪沒有,這個玩家體驗就是非常差的,所以要使計算能力提高,滿足所有的響應速度。「最開始我們只想做一個函數庫,並不是做框架。我們後來發現,還是做一個框架更方便一點。」雲風說。
據云風介紹,Skynet這個項目是開源的,也非常簡單。它的核心代碼只有2900多行,當然現在還有一些額外的庫是必備的,全部加起來也不超過1萬行。此外它的licence也是開放的。
回看Skynet的誕生史,雲風表示最初是從2010年開始考慮做Skynet,到2011年實現基於Erlang的第一版,2012年又用C語言重寫,同年8月1日開源發布。
更多精彩內容,請關注 @CSDN研發頻道,「 2013中國軟體開發者大會圖文直播」專題 。
本文為CSDN原創文章,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)