Golang中Goroutine和Thread之间的区别。

古鲁丁

Goroutine是可以与其他goroutine一起独立执行的方法/功能。Go语言中的每个并发活动通常都称为gorountine。

线

线程是一个轻量级的过程。可以将其视为执行一段代码的单元。操作系统管理线程。

以下是Goroutine和Thread之间的重要区别。

序号古鲁丁线
1管理者Goroutine方法由golang运行时管理。线程由操作系统管理。
2硬件依赖性Goroutine独立于硬件。线程取决于硬件。
3传播媒介Goroutines使用通道作为通信介质。线程没有容易沟通的媒介。
4潜伏Goroutine可以与其他具有低延迟的例程进行通信。线程如无通信介质,则与其他线程进行高延迟通信。
5IDGoroutine没有任何线程本地存储,并且没有唯一的ID。线程具有线程本地存储,并且具有唯一的ID。
6排程Goroutine是合作安排的。线程被抢先调度。
7启动Goroutine具有更快的启动时间。线程的启动时间较慢。
8叠放Goroutine具有可增长的分段堆栈。线程没有可增长的分段堆栈。