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 可以以低延迟与其他例程通信。线程没有通信媒介,与其他线程通信时延迟较高。
5IDGoroutine 没有任何线程本地存储,也没有唯一 id。线程有线程本地存储,并且有唯一 id。
6调度Goroutines 是协作调度的。线程是抢占式调度的。
7启动Goroutines 的启动时间更快。线程的启动时间较慢。
8堆栈Goroutines 具有可增长的分段堆栈。线程没有可增长的分段堆栈。

相关文章