1)从语言层面支持并发,实现简单;
2)goroutine,轻量级线程,可实现大并发处理,高效利用多核;
3)基于CPS并发模型(Communicating Sequential Processes)实现;
4)吸收了管道通讯机制,形成Go语言特有的管道channel,通过管道可以实现不同的goroute之间的相互通信;
5)函数可以返回多个值;举例:
//写一个函数,实现同时返回 和,差;
//go 函数支持返回多个值;
func getSumAndSub(n1 int,n2 int) (int,int) {
sum := n1 + n2 //go 语言后面不要带分号;
sub := n1 - n2
return sum , sub
}
6)新的创新,比如切片 slice,延时执行 defer;