golang中,goroutine可以透過 channel來通訊.
請看以下範例,其中使用了一個新的指令chan.
// hello55
package main
import (
	"fmt"
	"time"
)
func 丁丁(ch chan string) {
	ch <- "你好! #1"
	ch <- "你好! #2"
	ch <- "你好! #3"
	ch <- "你好! #4"
}
func 玉面飛鷹(ch chan string) {
	var input string
	for {
		input = <-ch
		fmt.Printf("玉面飛鷹收到: %s\n", input)
	}
}
func main() {
	ch := make(chan string)
	go 丁丁(ch)
	go 玉面飛鷹(ch)
	time.Sleep(time.Second * 3)
}
執行結果:
λ ./hello55 
玉面飛鷹收到: 你好! #1
玉面飛鷹收到: 你好! #2
玉面飛鷹收到: 你好! #3
玉面飛鷹收到: 你好! #4
main()產生兩個goroutine分別叫 丁丁 與 玉面飛鷹.
傳遞進由main產生的channel,其中傳遞的資料型態為string.
接著就可以看到丁丁很熱情的向玉面飛鷹打招呼.
玉面飛鷹 : 丁丁說你好....
<pre class="c" name="code">λ ./hello55 
玉面飛鷹收到: 你好! #1
玉面飛鷹收到: 你好! #2
玉面飛鷹收到: 你好! #3
玉面飛鷹收到: 你好! #4