goroutine和线程的区别,为什么说goroutine轻量

本文阅读 1 分钟
首页 golang 正文
题目序号:(1619)
题目来源:美团
频次:1

答案1:(cxiang)

线程
线程有时被称为轻量级进程(Lightweight Process),是程序执行流的最小单元。

goroutine

goroutine是Go语言中的轻量级线程实现,也叫go协程;由Go运行时(runtime)管理

goroutine 为什么轻量

  • 资源占用小,每个 goroutine 的初始栈大小仅为 2k;
  • 由 Go 运行时而不是操作系统调度,goroutine 上下文切换在用户层完成,开销更小;
  • 在语言层面而不是通过标准库提供。goroutine 由go关键字创建,一退出就会被回收或销毁,开发体验更佳
  • 语言内置 channel 作为 goroutine 间通信原语,为并发设计提供了强大支撑。
本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论