西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)其它知識 → Go語言并發(fā)之美:解釋其中內(nèi)核、外延

Go語言并發(fā)之美:解釋其中內(nèi)核、外延

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:微博時間:2012/11/28 13:47:54字體大。A-A+

作者:顏開點擊:71次評論:0次標(biāo)簽: Go語言

Flash版LOGO語言V9.8 免費簡體中文版
  • 類型:編程工具大小:3.2M語言:中文 評分:6.3
  • 標(biāo)簽:
立即下載
9 頁 并發(fā)模式之實現(xiàn)

并發(fā)模式之實現(xiàn)

在并發(fā)編程大行其道的今天,對協(xié)程和通道的支持成為各個平臺比不可少的一部分。雖然各家有各家的叫法,但都能滿足協(xié)程的基本要求—并發(fā)執(zhí)行和可大量創(chuàng)建。筆者對他們的實現(xiàn)方式總結(jié)了一下。

        下面列舉一些已經(jīng)支持協(xié)程的常見的語言和平臺。

GoLang 和Scala作為最新的語言,一出生就有完善的基于協(xié)程并發(fā)功能。Erlang最為老資格的并發(fā)編程語言,返老還童。其他二線語言則幾乎全部在新的版本中加入了協(xié)程。

令人驚奇的是C/C++和Java這三個世界上最主流的平臺沒有在對協(xié)程提供語言級別的原生支持。他們都背負(fù)著厚重的歷史,無法改變,也無需改變。但他們還有其他的辦法使用協(xié)程。

Java平臺有很多方法實現(xiàn)協(xié)程:

        · 修改虛擬機(jī):對JVM打補(bǔ)丁來實現(xiàn)協(xié)程,這樣的實現(xiàn)效果好,但是失去了跨平臺的好處

        · 修改字節(jié)碼:在編譯完成后增強(qiáng)字節(jié)碼,或者使用新的JVM語言。稍稍增加了編譯的難度。

        · 使用JNI:在Jar包中使用JNI,這樣易于使用,但是不能跨平臺。

        · 使用線程模擬協(xié)程:使協(xié)程重量級,完全依賴JVM的線程實現(xiàn)。

        其中修改字節(jié)碼的方式比較常見。因為這樣的實現(xiàn)辦法,可以平衡性能和移植性。最具代表性的JVM語言Scale就能很好的支持協(xié)程并發(fā)。流行的Java Actor模型類庫akka也是用修改字節(jié)碼的方式實現(xiàn)的協(xié)程。

        對于C語言,協(xié)程和線程一樣?梢允褂酶鞣N各樣的系統(tǒng)調(diào)用來實現(xiàn)。協(xié)程作為一個比較高級的概念,實現(xiàn)方式實在太多,就不討論了。比較主流的實現(xiàn)有l(wèi)ibpcl, coro,lthread等等。

        對于C++,有Boost實現(xiàn),還有一些其他開源庫。還有一門名為μC++語言,在C++基礎(chǔ)上提供了并發(fā)擴(kuò)展。

        可見這種編程模型在眾多的語言平臺中已經(jīng)得到了廣泛的支持,不再小眾。如果想使用的話,隨時可以加到自己的工具箱中。

結(jié)語 

        本文探討了一個極其簡潔的并發(fā)模型。在只有協(xié)程和通道這兩個基本元件的情況下?梢蕴峁┴S富的功能,解決形形色色實際問題。而且這個模型已經(jīng)被廣泛的實 現(xiàn),成為潮流。相信這種并發(fā)模型的功能遠(yuǎn)遠(yuǎn)不及此,一定也會有更多更簡潔的用法出現(xiàn);蛟S未來CPU核心數(shù)目將和人腦神經(jīng)元數(shù)目一樣多,到那個時候,我們 又要重新思考并發(fā)模型了。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)