Goroutine是可以与其他goroutine一起独立执行的方法/功能。Go语言中的每个并发活动通常都称为gorountine。
线程是一个轻量级的过程。可以将其视为执行一段代码的单元。操作系统管理线程。
以下是Goroutine和Thread之间的重要区别。
序号 | 键 | 古鲁丁 | 线 |
---|---|---|---|
1 | 管理者 | Goroutine方法由golang运行时管理。 | 线程由操作系统管理。 |
2 | 硬件依赖性 | Goroutine独立于硬件。 | 线程取决于硬件。 |
3 | 传播媒介 | Goroutines使用通道作为通信介质。 | 线程没有容易沟通的媒介。 |
4 | 潜伏 | Goroutine可以与其他具有低延迟的例程进行通信。 | 线程如无通信介质,则与其他线程进行高延迟通信。 |
5 | ID | Goroutine没有任何线程本地存储,并且没有唯一的ID。 | 线程具有线程本地存储,并且具有唯一的ID。 |
6 | 排程 | Goroutine是合作安排的。 | 线程被抢先调度。 |
7 | 启动 | Goroutine具有更快的启动时间。 | 线程的启动时间较慢。 |
8 | 叠放 | Goroutine具有可增长的分段堆栈。 | 线程没有可增长的分段堆栈。 |