189 8069 5689

go语言中协程与线程有什么区别-创新互联

golang中协程和线程的区别

创新互联建站专注于定兴网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供定兴营销型网站建设,定兴网站制作、定兴网页设计、定兴网站官网定制、小程序制作服务,打造定兴网络公司原创品牌,更为您提供定兴网站排名全网营销落地服务。

一般来说,协程就像轻量级的线程。

线程一般有固定的栈,有一个固定的大小。而goroutines为了避免资源浪费(亦或是资源缺乏),采用动态扩张收缩的策略:初始量为2k,大可以扩张到1G。

每个线程都有一个id,在线程创建的时候就会被返回,所以我们可以通过线程的id来操纵线程。但是在golang中没有这个概念,因此我们在编码之初就要考虑协程的创建和释放问题。

线程和 goroutine 切换调度开销方面

线程/goroutine 切换开销方面,goroutine 远比线程小

线程:涉及模式切换(从用户态切换到内核态)、16个寄存器、PC、SP...等寄存器的刷新等。

因为协程在用户态由协程调度器完成,不需要陷入内核,这代价就小了。

所以goroutine:只有三个寄存器的值修改 - PC / SP / DX.

以上就是golang中协程和线程的区别是什么?的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:go语言中协程与线程有什么区别-创新互联
标题来源:http://cdxtjz.cn/article/dsdppj.html

其他资讯