Go 语言学习手册

免费学习 完整知识体系 快速检索

Go语言学习手册《Goroutine 轻量级线程》:Goroutine 是 Go 并发模型的核心,由 Go 运行时管理的轻量级线程(协程),创建成本极低(几 KB 栈)。 **启动 goroutine:** 使用 `go` 关键字 + 函数调用。 ```go func say(s stri...

并发:goroutine

Goroutine 轻量级线程

【详细说明 & 代码示例】
Goroutine 是 Go 并发模型的核心,由 Go 运行时管理的轻量级线程(协程),创建成本极低(几 KB 栈)。 **启动 goroutine:** 使用 `go` 关键字 + 函数调用。 ```go func say(s string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } func main() { go say("world") // 并发执行 say("hello") // 主 goroutine } ``` **主 goroutine 退出时程序结束,其他 goroutine 可能被强制终止。** 使用 `sync.WaitGroup` 等待多个 goroutine 完成。 ```go import "sync" var wg sync.WaitGroup func worker() { defer wg.Done() // 完成时减1 // 工作 } func main() { for i := 0; i < 5; i++ { wg.Add(1) go worker() } wg.Wait() // 等待所有完成 } ``` **GOMAXPROCS** 控制并行度(默认为 CPU 核心数)。 **注意:** goroutine 使用闭包时小心变量捕获(循环变量陷阱)。

学习提示:建议安装 Go 环境(go.dev/dl),使用 VS Code 或 GoLand 编写代码,并熟练使用 go run、go build、go mod 等命令。

全部章节目录(共 30 个知识点)

Go 基础 (1个知识点)

接口(interface) (1个知识点)

指针 (1个知识点)

错误处理 (1个知识点)

包管理 (1个知识点)

并发:goroutine (1个知识点)

并发:channel (1个知识点)

同步原语 (1个知识点)

网络与 HTTP (1个知识点)

测试与性能 (1个知识点)

反射与泛型 (1个知识点)

CGO 与汇编 (1个知识点)

Web 框架 (1个知识点)

数据库操作 (1个知识点)

配置与日志 (1个知识点)

部署与运维 (1个知识点)

使用说明

  • • 本手册涵盖 Go 语言从基础到并发实战、Web 服务的完整知识体系
  • • 在搜索框输入关键词,快速定位相关知识点
  • • 点击条目标题进入详情页,查看详细说明与代码示例
  • • 页面按分类展示所有知识点,方便系统性学习
  • • 建议安装 Go 环境并使用 VS Code 或 GoLand 进行实践