go day10 goroutine、runtime、chan
2019-11-09 本文已影响0人
落雨_a363
goroutine (如果主协程退出了,程序也就退出了)
1runtime包:
1.runtime.Gosched():用于让出CPU时间片,让出当前goruntine的执行权限,调度器胺片其他等待的任务运行.
2.runtime.Goexit()
13.runtime.GOMAXPROCS()
调用runtime.GOMAXPROCS()用来设置可以并行计算的CPU核数的最大值,并返回之前的值。
channel
goroutine运行在相同的地址空间,因此访问共享内存必须做好同步。goroutine 奉行通过通信来共享内存,而不是共享内存来通信。
引⽤类型channel是 CSP 模式的具体实现,用于多个 goroutine 通讯。其内部实现了同步,确保并发安全。
默认情况下,channel接收和发送数据都是阻塞的,除非另一端已经准备好,这样就使得goroutine同步变的更加的简单,而不需要显式的lock。
1 1 1 1 1channel关闭
1 1 1 1 1