- 内存消耗方面
- 一个线程的内存在 MB 级别,而协程只需要 KB 级别。
- goroutine:2KB
- 线程:1-8MB
- 初始化为2KB,最大可扩张到1GB。
- 线程和 goroutine 切换调度开销方面
- 线程/goroutine 切换开销方面,goroutine 远比线程小
- 线程:涉及模式切换(从用户态切换到内核态)、16个寄存器、PC、SP...等寄存器的刷新等。
- goroutine:只有三个寄存器的值修改 - PC / SP / DX.
本文标题:go 协程和线程的区别
本文链接:https://www.haomeiwen.com/subject/ltbfqqtx.html
网友评论