go 是並髮式語言,而不是並行式語言。在討論 go 如何處理併發之前,我們必須理解何為併發,以及併發與並行的區別。
併發是指立即處理多個任務的能力。乙個例子就能很好地說明這一點。
我們可以想象乙個人正在跑步。假如在他晨跑時,鞋帶突然松了。於是他停下來,系一下鞋帶,接下來繼續跑。這個例子就是典型的併發。這個人能夠一下搞定跑步和繫鞋帶兩件事,即立即處理多個任務。
並行是指同時處理多個任務。這聽起來和併發差不多,但其實完全不同。
我們同樣用這個跑步的例子來幫助理解。假如這個人在慢跑時,還在用他的 ipod 聽著**。在這裡,他是在跑步的同時聽**,也就是同時處理多個任務。這稱之為並行。
通過現實中的例子,我們已經明白了什麼是併發,以及併發與並行的區別。作為一名極客,我們接下來從技術的角度來考察併發和並行。:)
go 程式語言原生支援併發。go 使用 go 協程(goroutine) 和通道(channel)來處理併發。在接下來的教程裡,我們還會詳細介紹它們。
譯者:noluye
校對:polaris1119
本文由 gctt 原創編譯,go語言中文網 榮譽推出
Go 系列教程 第 15 部分 指標
指標是一種儲存變數記憶體位址 memory address 的變數。接下來我們寫點 package main import fmt func main type of a is int address of b is 0x1040a124 由於 b 可能處於記憶體的任何位置,你應該會得到乙個不同的位...
Microformats教程 第3部分
本文首發於 http www.lunaticsun.com article microformats three 目前,這個系列已經有兩篇文章了,它們是 什麼是microformats microformats教程 第1部分 microformats教程 第2部分 在這一部分中,我們將討論一種全新的...
MySQL系列,第1部分 Mysql簡介
mysql是乙個關係型資料庫管理系統 由瑞典 mysql ab 公司開發,目前屬於 oracle 公司。mysql 最流行的關係型資料庫管理系統 在 web 應用方面 mysql 是最好的 rdbms relational database management system,關聯式資料庫管理系統 ...