一、Go程
1.goroutine是由 Go 運(yùn)行時(shí)管理的輕量級(jí)線程
我們稱之為Go程是因?yàn)楝F(xiàn)有的術(shù)語(yǔ)—線程、協(xié)程、進(jìn)程等等—無(wú)法準(zhǔn)確傳達(dá)它的含義。 Go程具有簡(jiǎn)單的模型:它是與其它Go程并發(fā)運(yùn)行在同一地址空間的函數(shù)。它是輕量級(jí)的, 所有小號(hào)幾乎就只有??臻g的分配。而且棧最開始是非常小的,所以它們很廉價(jià), 僅在需要時(shí)才會(huì)隨著堆空間的分配(和釋放)而變化。Go程在多線程操作系統(tǒng)上可實(shí)現(xiàn)多路復(fù)用,因此若一個(gè)線程阻塞,比如說等待I/O, 那么其它的線程就會(huì)運(yùn)行。Go程的設(shè)計(jì)隱藏了線程創(chuàng)建和管理的諸多復(fù)雜性。在函數(shù)或方法前添加?go?關(guān)鍵字能夠在新的Go程中調(diào)用它。當(dāng)調(diào)用完成后, 該Go程也會(huì)安靜地退出。(效果有點(diǎn)像Unix Shell中的?&?符號(hào),它能讓命令在后臺(tái)運(yùn)行。)

二、信道
信道是帶有類型的管道,你可以通過它用信道操作符 <- 來(lái)發(fā)送或者接收值。信道可以是帶緩沖的。將緩沖長(zhǎng)度作為第二個(gè)參數(shù)提供給?make?來(lái)初始化一個(gè)帶緩沖的信道
信道與映射一樣,也需要通過?make?來(lái)分配內(nèi)存。其結(jié)果值充當(dāng)了對(duì)底層數(shù)據(jù)結(jié)構(gòu)的引用。 若提供了一個(gè)可選的整數(shù)形參,它就會(huì)為該信道設(shè)置緩沖區(qū)大小。默認(rèn)值是零,表示不帶緩沖的或同步的信道。????

未完待續(xù)