Goroutine(协程)和系统线程(OS Thread)是 Go 语言高并发能力的核心所在。简单来说,Goroutine 是 Go 语言运行时(Runtime)管理的“轻量级线程”,而系统线程是操作系统内核管理的资源。 以下是它们在内存、调度、创建成本等方面的详细对比: 核心区别总结表 | 特性 | Goroutine (协程) | OS Thread (系统线程) | | :--- | :--- | :--- | | 管理方 | Go Runtime (用户态) | OS Kernel (内核态) | | 初始栈大小 | 2KB (动态伸缩) | 1MB - 8MB (固定) | | 上下文切换成本 | 极低 (0.2微秒) | 较高 (1-2微秒) | | 调度策略 | 协作式/抢占式 (M:N 模型) | 抢占式 (时间片) | | 创建/销毁成本 | 极低 (简单的内存分配) | 高 (涉及系统调用) | | 标识 (ID) | 无公开 ID (防止滥用 TLS) | 有唯一的 Thread ID | | 通信方式 | Channel (CSP 模型) | 共享内存、信...