併發
Go的做者選擇了消息傳遞模型來做爲推薦的併發編程方法。該語言一樣支持共享內存,而後做者自有道理:
編程
該語言提供了兩個基本的構件來支持這一範型:goroutines和channels。
Go例程
Goroutine是輕量級的並行程序執行路徑,與線程,coroutine或者進程相似。然而,它們彼此至關不一樣,所以Go做者決定給它一個新的名字並 放棄其它術語可能隱含的意義。
建立一個goroutine來運行名爲DoThis的函數十分簡單:
併發
匿名的函數能夠這樣使用:
函數
這些goroutine將會經過Go運行時而映射到適當的操做系統原語(好比,POSIX線程)。
通道類型
有了goroutine,代碼的並行執行就容易了。然而,它們之間仍然須要通信機制。Channel提供一個FIFO通訊隊列恰好能達到這一目的。
如下是使用channel的語法:
post
舉例來講,若是咱們想要進行長時間運行的數值計算,咱們能夠這樣作:
操作系統
閱讀全文>>線程