Nivelle 开拓视野冲破艰险看见世界 身临其境贴近彼此感受生活

go学习第六篇(多线程)

2018-09-07
go

特征

  • Goroutine奉行通过通信来共享内存,而不是共享内存来通信

Channel

  • Channel 是goroutine 沟通的桥梁,大都是阻塞同步的
  • 通过make创建,close 关闭
  • Channel是引用类型
  • 可以使用for range 来迭代不断操作 channel
  • 可以设置单向或者双向通道
  • 可以设置缓存大小,在未填满前不会发生阻塞
package main

import (
	"fmt"
)

func main() {
	c := make(chan string)
	var str2 string
	go func(str string) string {
		c <- "fuck..."
		str2 = str
		return str
	}("fuckreal")

	fmt.Println(<-c)
	fmt.Println(str2)
	close(c)
}


fuck...
fuckreal
成功: 进程退出代码 0.




评论