Golang 中 Goroutine 和 Thread 的区别。
go programmingserver side programmingprogramming
Goroutine
Goroutine 是可以与其他 goroutine 一起独立执行的方法/函数。Go 语言中的每个并发活动通常被称为 gorountine。
Thread
线程是一个轻量级进程。它可以被视为执行一段代码的单元。操作系统管理线程。
以下是 Goroutine 和 Thread 之间的重要区别。
Sr.不。 | 关键 | Goroutine | 线程 |
---|---|---|---|
1 | 管理者 | Goroutine 方法由 golang 运行时管理。 | 线程由操作系统管理。 |
2 | 硬件依赖性 | Goroutine 独立于硬件。 | 线程相互依赖硬件上。 |
3 | 通信媒介 | Goroutines 使用通道作为通信媒介。 | 线程没有简单的通信媒介。 |
4 | 延迟 | Goroutines 可以以低延迟与其他例程通信。 | 线程没有通信媒介,与其他线程通信时延迟较高。 |
5 | ID | Goroutine 没有任何线程本地存储,也没有唯一 id。 | 线程有线程本地存储,并且有唯一 id。 |
6 | 调度 | Goroutines 是协作调度的。 | 线程是抢占式调度的。 |
7 | 启动 | Goroutines 的启动时间更快。 | 线程的启动时间较慢。 |
8 | 堆栈 | Goroutines 具有可增长的分段堆栈。 | 线程没有可增长的分段堆栈。 |