【Golang】为什么Goroutine支持高并发(约269字)

相比于线程来说,它所占用的资源更小的。一个线程可以有多个协程;线程进程可以看作是同步机制,而协程非阻塞模式。

和channel的组合能让开发的过程中不会太过于去考虑事物的并发控制,因为通过 channel 可以进行控制,因为是协程,他们其实共享了一些资源,所以他们其实可以通过共享内存的方式去进行相关的交互。

相对比起线程的加锁机制来说,协程的效率会更高一些。

补充

协程大小相对于线程来说更小,大小只有2k,内存中可以允许有更多的携程来处理并发任务

协程的上下文切换不哦那个由用户态切换到内核态,且保存的寄存器值更少,所以切成切换的开销更小,效率更高

go语言在语言层面go语言的的runtime内置了协程调度器,整体通过gmp模型高效的调度goroutine的运行

THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容