Rob Pike
Unix 的早期开发者 UTF-8 创始⼈人
Ken Thompson
Unix 的创始⼈人 C 语⾔言创始⼈人 1983 年年获图灵奖
Robert Griesemer
Google V8 JS Engine 开发者 Hot Spot 开发者
Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发。
Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。可以将 goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine。
goroutine的特点:
- goroutine具有可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。
- goroutine的启动时间比线程快。
- goroutine原生支持利用channel安全地进行通信。
- goroutine共享数据结构时无需使用互斥锁。
Go 语言简单易学,学习曲线平缓,只有25个关键字。其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括号,循环也只有 for 一种表示方法,就可以实现数值、键值等各种遍历。
Go语言实现了开发效率与执行效率的完美结合,让你像写Python代码(效率)一样编写C代码(性能)。
Go语⾔言⽀支持当前所有的编程范式,包括过程式编程、⾯面向对象编程、⾯面向 接⼝口编程、函数式编程。程序员们可以各取所需、⾃自由组合、想怎么玩就怎么玩。
Go拥有强⼤大的编译检查、严格的编码规范和完整的软件⽣生命周期⼯工具,具 有很强的稳定性,稳定压倒⼀一切。那么为什什么Go相⽐比于其他程序会更更稳定呢? 这是因为Go提供了了软件⽣生命周期(开发、测试、部署、维护等等)的各个环节 的⼯工具,如go tool、gofmt、go test。