go 协程和线程的区别

  1. 内存消耗方面
  • 一个线程的内存在 MB 级别,而协程只需要 KB 级别。
    • goroutine:2KB
    • 线程:1-8MB
    • 初始化为2KB,最大可扩张到1GB。
  1. 线程和 goroutine 切换调度开销方面
    • 线程/goroutine 切换开销方面,goroutine 远比线程小
    • 线程:涉及模式切换(从用户态切换到内核态)、16个寄存器、PC、SP...等寄存器的刷新等。
    • goroutine:只有三个寄存器的值修改 - PC / SP / DX.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容