golang的MPG模型,goroutine和线程的区别

本文阅读 1 分钟
首页 golang 正文
题目来源:京东

答案:行飞子

MPG模型

  • M(Machine):操作系统的主线程(可以理解为内核线程在用户进程中的映射)
  • P(Processor):协程执行的上下文环境(资源) P的最大数量决定了程序的并发规模。
  • G(Goroutine):协程(轻量级用户线程)

goroutine和线程的区别

goroutine即协程,可以理解为轻量级线程,但

  1. 内存消耗更少,Goroutine所需要的内存通常只有2kb,而线程则需要1Mb(500倍)。
  2. 从调度上看,goroutine的调度开销远远小于线程调度开销。
  3. 从栈空间上,goroutine的栈空间更加动态灵活。
本文来自投稿,不代表本站立场,如若转载,请注明出处:
了解中间件吗?有什么好处?
« 上一篇 09-17
Go 高并发的特点
下一篇 » 09-17

发表评论

发表评论