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

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

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

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

作者:顏開(kāi)點(diǎn)擊:71次評(píng)論:0次標(biāo)簽: Go語(yǔ)言

Flash版LOGO語(yǔ)言V9.8 免費(fèi)簡(jiǎn)體中文版
  • 類(lèi)型:編程工具大。3.2M語(yǔ)言:中文 評(píng)分:6.3
  • 標(biāo)簽:
立即下載
3 頁(yè) 多路復(fù)用

多路復(fù)用

多路復(fù)用是讓一次處理多個(gè)隊(duì)列的技術(shù)。Apache使用處理每個(gè)連接都需要一個(gè)進(jìn)程,所以其并發(fā)性能不是很好。而Nginx使用多路復(fù)用的技術(shù),讓一 個(gè)進(jìn)程處理多個(gè)連接,所以并發(fā)性能比較好。同樣,在協(xié)程的場(chǎng)合,多路復(fù)用也是需要的,但又有所不同。多路復(fù)用可以將若干個(gè)相似的小服務(wù)整合成一個(gè)大服務(wù)。

那么讓我們用多路復(fù)用技術(shù)做一個(gè)更高并發(fā)的隨機(jī)數(shù)生成器吧。

// 函數(shù)rand_generator_3 ,返回通道(Channel)

funcrand_generator_3() chan int {

         // 創(chuàng)建兩個(gè)隨機(jī)數(shù)生成器服務(wù)

         rand_generator_1 := rand_generator_2()

         rand_generator_2 := rand_generator_2()

         //創(chuàng)建通道

         out := make(chan int)

         //創(chuàng)建協(xié)程

         go func() {

                   for {

                            //讀取生成器1中的數(shù)據(jù),整合

                            out <-<-rand_generator_1

                   }

         }()

         go func() {

                   for {

                            //讀取生成器2中的數(shù)據(jù),整合

                            out <-<-rand_generator_2

                   }

         }()

         return out

}

上面是使用了多路復(fù)用技術(shù)的高并發(fā)版的隨機(jī)數(shù)生成器。通過(guò)整合兩個(gè)隨機(jī)數(shù)生成器,這個(gè)版本的能力是剛才的兩倍。雖然協(xié)程可以大量創(chuàng)建,但是眾多協(xié)程還是會(huì) 爭(zhēng)搶輸出的通道。Go語(yǔ)言提供了Select關(guān)鍵字來(lái)解決,各家也有各家竅門(mén)。加大輸出通道的緩沖大小是個(gè)通用的解決方法。

多路復(fù)用技術(shù)可以用來(lái)整合多個(gè)通道。提升性能和操作的便捷。配合其他的模式使用有很大的威力。

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

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

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

    沒(méi)有數(shù)據(jù)