Goroutine:
在函数调用之前添加go关键字。自动并发。
如果主Goroutine先于子Goroutine结束运行。主动释放整个虚拟进程地址空间。
****所有子Goroutine被强制结束****
进程操作相关函数:
Goroutine调度机制:
// runtime包
Gosched 主动让出当前gGoroutine使用权一次。进入就绪态,提高其他Goroutine获得cpu的概率。
GOMAXPROCS 设置当前参与计算的逻辑cpu个数,返回设置之前的个数。
Numcpu 返回计算机默认逻辑cpu个数。
GC 手动调用垃圾回收器。回收垃圾内存。
进程回收:
Goexit() 结束当前go程,并且执行成功注册的defer指令。
os.Exit(int) 结束当前进程,不会指定defer注册成功的执行。
return 返回当前函数调用
进程间通信:
// Go语言中Goroutine奉行**通过通信来共享内存,而不是通过共享内存来通信**
// 推荐
channel 通过通信来共享内存
// 不推荐
map 共享内存地址通信
线程同步:
一个线程发出某一项功能调用时,没有得到结果之前,该调用不返回。同时其他线程为了保证数据一致性,不能调用该功能。