语言进阶以及依赖管理
并发编程
go能够充分发挥多核优势,高效运行(与多线程一致)
1、 协程:用户态,轻量级线程,栈级别KB
加入go关键字就能够实现协程的使用
2、线程:内核态,线程有多个协程,栈级别MB
3、协程之间的通信:提倡通过通信共享内存而不是共享内存而实现通信。
4、channel的具体操作:channel通过make关键字,make(chan元素类型,【缓冲大小】)
如:无缓冲通道 make(chan int) 有缓冲通道 make(chan int,2) 可放置的元素量。
channel示例:
发送从0到9的数字放入src通道,将src通道中的数字平方再发送到dest有缓冲通道
不会因为消费者消费速度问题来降低执行效率问题。
并发安全lock
依赖管理
go依赖管理
利用他人开发的开发包,依赖原生sdk-》管理依赖库,将重点放在业务逻辑而不是框架结构上。
三个阶段:GOPATH->Go Vender->Go Module
不同环境依赖版本不同,控制依赖库版本。
gopath弊端
package升级后 无法实现package的多版本控制。
go vender弊端
存放项目依赖的副本 无法兼容不同package