關於go中並行的初步理解

來源:互聯網
上載者:User

標籤:地址   devices   線程   device   系統   多個   body   空間   上下   

一些概念的介紹:

概念 描述
進程

在記憶體中的程式。有自己獨立的獨佔的虛擬 CPU 、虛擬 Memory、虛擬 IO devices。

(1) 每一進程佔用獨立的地址空間。 此處的地址空間包括代碼、資料及其他資源。
(2) 進程間的通訊開銷較大且受到許多限制。 對象(或函數)介面、通訊協定
(3) 進程間的切換開銷也較大。 又稱Context Switch。上下文包括代碼、資料、堆棧、處理器狀態、資源。

線程

輕量級進程。在現代作業系統中,是進程中程式執行流的最小單元。一個標準的線程由線程ID,當前指令指標(PC),寄存器集合和堆棧組成。

(1) 多個線程共用進程的地址空間(代碼、資料、其他資源等)。
線程也需要自己的資源,如程式計數器、寄存器組、調用棧等。

(2) 線程間的通訊開銷較少且比較簡單。
因為共用而減少了需要通訊的內容。
但也因為充分共用而無法對共用資源進行保護。

(3) 線程間的切換開銷也較小。
只需儲存每一線程的程式計數器、寄存器組、堆棧等空間。
不必切換或複製整個地址空間,從而成本大為降低(約1/10)

協程 輕量級線程。 是可以並發執行的函數,由編譯或使用者指定位置將控制權交給協程發送器執行的方式。它是非搶佔式的,可以避免反覆系統調用,還有進程切換造成的開銷,給你上幾千個邏輯流,也稱使用者層級線程。
邏輯處理器 每個邏輯處理器都會綁定一個線程,並負責goroutine的執行
 並發  並發是以時間段為維度,即在單位時間內,同時完成多件事。
 並行  並行是以時間點為維度,即在某個時間點,同時完成多件事。
   
   
   
   
   

關於go中並行的初步理解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.