西西軟件下載最安全的下載網(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)簽:
立即下載

多核處理器越來(lái)越普及,那有沒(méi)有一種簡(jiǎn)單的辦法,能夠讓我們寫(xiě)的軟件釋放多核的威力?答案是:Yes。隨著Golang, Erlang, Scale等為并發(fā)設(shè)計(jì)的程序語(yǔ)言的興起,新的并發(fā)模式逐漸清晰。正如過(guò)程式編程和面向?qū)ο笠粯樱粋(gè)好的編程模式需要有一個(gè)極其簡(jiǎn)潔的內(nèi)核,還有在此之 上豐富的外延,可以解決現(xiàn)實(shí)世界中各種各樣的問(wèn)題。本文以GO語(yǔ)言為例,解釋其中內(nèi)核、外延。

并發(fā)模式之內(nèi)核

這種并發(fā)模式的內(nèi)核只需要協(xié)程和通道就夠了。其中協(xié)程負(fù)責(zé)執(zhí)行代碼,通道負(fù)責(zé)在協(xié)程之間傳遞事件。

  

并發(fā)編程一直以來(lái)都是個(gè)非常困難的工作。要想編寫(xiě)一個(gè)良好的并發(fā)程序,我們不得不了解線(xiàn)程, 鎖,semaphore,barrier甚至CPU更新高速緩存的方式,而且他們個(gè)個(gè)都有怪脾氣,處處是陷阱。筆者除非萬(wàn)不得以,決不會(huì)自己操作這些底層 并發(fā)元素。一個(gè)簡(jiǎn)潔的并發(fā)模式不需要這些復(fù)雜的底層元素,只需協(xié)程和通道就夠了。

協(xié)程是輕量級(jí)的線(xiàn)程。在過(guò)程式編程中,當(dāng)調(diào)用一個(gè)過(guò)程的時(shí)候,需要等待其執(zhí)行完才返回。而調(diào)用一個(gè)協(xié)程的時(shí)候,不需要等待其執(zhí)行完,會(huì)立即返回。協(xié)程十分 輕量,Go語(yǔ)言可以在一個(gè)進(jìn)程中執(zhí)行有數(shù)以十萬(wàn)計(jì)的協(xié)程,依舊保持高性能。而對(duì)于普通的平臺(tái),一個(gè)進(jìn)程有數(shù)千個(gè)線(xiàn)程,其CPU會(huì)忙于上下文切換,性能急劇 下降。隨意創(chuàng)建線(xiàn)程可不是一個(gè)好主意,但是我們可以大量使用的協(xié)程。

通道是協(xié)程之間的數(shù)據(jù)傳輸通道。通道可以在眾多的協(xié)程之間傳遞數(shù)據(jù),具體可以值也可以是個(gè)引用。通道有兩種使用方式。

·  協(xié)程可以試圖向通道放入數(shù)據(jù),如果通道滿(mǎn)了,會(huì)掛起協(xié)程,直到通道可以為他放入數(shù)據(jù)為止。

·  協(xié)程可以試圖向通道索取數(shù)據(jù),如果通道沒(méi)有數(shù)據(jù),會(huì)掛起協(xié)程,直到通道返回?cái)?shù)據(jù)為止。

 如此,通道就可以在傳遞數(shù)據(jù)的同時(shí),控制協(xié)程的運(yùn)行。有點(diǎn)像事件驅(qū)動(dòng),也有點(diǎn)像阻塞隊(duì)列。這兩個(gè)概念非常的簡(jiǎn)單,各個(gè)語(yǔ)言平臺(tái)都會(huì)有相應(yīng)的實(shí)現(xiàn)。在Java和C上也各有庫(kù)可以實(shí)現(xiàn)兩者。

  

只要有協(xié)程和通道,就可以?xún)?yōu)雅的解決并發(fā)的問(wèn)題。不必使用其他和并發(fā)有關(guān)的概念。那如何用這兩把利刃解決各式各樣的實(shí)際問(wèn)題呢?

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

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

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀(guān)圍觀(guān)
    • 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ù)