相比于线程来说,它所占用的资源更小的。一个线程可以有多个协程;线程进程可以看作是同步机制,而协程非阻塞模式。
和channel的组合能让开发的过程中不会太过于去考虑事物的并发控制,因为通过 channel 可以进行控制,因为是协程,他们其实共享了一些资源,所以他们其实可以通过共享内存的方式去进行相关的交互。
相对比起线程的加锁机制来说,协程的效率会更高一些。
补充
协程大小相对于线程来说更小,大小只有2k,内存中可以允许有更多的携程来处理并发任务
协程的上下文切换不哦那个由用户态切换到内核态,且保存的寄存器值更少,所以切成切换的开销更小,效率更高
go语言在语言层面go语言的的runtime内置了协程调度器,整体通过gmp模型高效的调度goroutine的运行
THE END
暂无评论内容