go day10 goroutine、runtime、chan

2019-11-09  本文已影响0人  落雨_a363

goroutine (如果主协程退出了,程序也就退出了)

1

runtime包:

1.runtime.Gosched():用于让出CPU时间片,让出当前goruntine的执行权限,调度器胺片其他等待的任务运行.

2.runtime.Goexit()

1

3.runtime.GOMAXPROCS()
调用runtime.GOMAXPROCS()用来设置可以并行计算的CPU核数的最大值,并返回之前的值。

channel

goroutine运行在相同的地址空间,因此访问共享内存必须做好同步。goroutine 奉行通过通信来共享内存,而不是共享内存来通信。

引⽤类型channel是 CSP 模式的具体实现,用于多个 goroutine 通讯。其内部实现了同步,确保并发安全。

默认情况下,channel接收和发送数据都是阻塞的,除非另一端已经准备好,这样就使得goroutine同步变的更加的简单,而不需要显式的lock。

1 1 1 1 1

channel关闭

1 1 1 1 1
上一篇下一篇

猜你喜欢

热点阅读