Skip to content

前景

Go 是一种静态类型编译的高级编程语言,由 Robert GriesemerRob PikeKen ThompsonGoogle[12] 设计。[4] 它在语法上C 语言相似,但也具有内存安全垃圾回收、[结构类型7]CSP 风格的并发性。[13]由于其以前的域名 golang.org,它通常被称为Golang,但它的专有名称是Go。

Go语言为并发而生

go语言(或 Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。

go是非常年轻的一门语言,它的主要目标是“兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性”

很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和I/O吞吐表现。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。

Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。可以将 goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine

goroutine的特点:

shell
 	1.`goroutine`具有可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。
    2.`goroutine`的启动时间比线程快。
    3.`goroutine`原生支持利用channel安全地进行通信。
    4.`goroutine`共享数据结构时无需使用互斥锁。

什么是goroutine?

go
1. 轻量级线程
2. runtime管理
3. 并发编程的基本单位
4. 占用内存少
5. 自动调度

创建goroutine

创建goroutine非常简单,只需要在函数调用前加上关键字go即可。 函数就会在一个新的goroutine中异步执行。

语法

go
go funcName(args)

Released under the MIT License.