并发编程
并发包含以下几种主流的实现模型
多进程,多进程是在操作系统层面进行并发的基本模式
多线程,多线程在大部分操作系统上都属于系统层面的并发模式
基于回调的非阻塞/异步IO,使用多线程模式会很快耗尽服务器的内存和CPU资源
协程,协程本质上是一种用户态线程,不需要操作系统来进行抢占式调度,且在真正的实现中寄存于线程中
Channel
声明
var channamechan elementtype
例 var ch chan int
var m map[string] chan bool map中的元素是bool类型的chan
定义
Ch :=make(chanint)
将一个数据写入到channel
Ch<-value
从channel读取数据
Value :=<-ch
单向channel声明:
Var ch1chan int ch1是一个正常的channel不是单向的
Var ch2chan <-float64 ch2是单向channel,只用于写float64的值
Var ch3<-chan int ch3是单向channel,只用于读int类型、
关闭channel: close(ch)
如何判断channel被关闭
X,ok:=<-ch 第二个值为false,则关闭
例子:http://blog.youkuaiyun.com/shangguan_1234/article/details/79584856

2010

被折叠的 条评论
为什么被折叠?



