Goroutine

Goroutine 是GO语言特有的名词,区别于进程Process,线程Thread。

Gorourine 是与其他函数或方法同时运行的函数或方法。Goroutines可以被认为是轻量级的线程。与线程相比,创造协程的成本很小,他就是一个代码,一个函数入口。因此他非常廉价,Go应用程序可以并发运行数千个Goroutines。

主Goroutine是指封装main函数的goroutine,他所做的事情并不是执行一个main函数这么简单。他首先做的是:设定每一个goroutine所能申请的栈空间的最大尺寸。如果有一个goroutine的栈内存尺寸大于这个限制,那么运行时系统就会依法一个栈溢出的运行时恐慌。随后,这个go程序的运行也会终止。

此后,主协程会进行一系列的初始化工作,涉及的工作内容大致如下:

1. 创建一个特殊的defer语句,用于在主协程退出时做出必要的善后处理。因为主协程也可能非正常的结束。

2. 启动专用于在后台清扫内存垃圾的goroutine,并设置可用的标识

3. 执行main包中的init函数

4.执行main函数

如何使用协程:

在函数或方法调用前加上关键字go,就会同时运行一个新的Goroutine。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 王文英的ScalersTalk第七轮新概念朗读持续力训练Day94 2022.01.16 练习材料: Lesson...
    tiaoyuema阅读 1,864评论 0 0
  • 好马配好鞍,好花配好盆,我的这盆榕树养了有20年来,买回来后就没有换过盆,也没怎么费心思,榕树不怎么生虫,土...
    e172c32b439a阅读 1,450评论 0 1
  • 什么才是自己的礼物 有多少种爱的表达就有多少种礼物,礼物多美好的一个词啊; 仰望星空,地球是宇宙给人类的礼物; 低...
    爱大自然阅读 3,258评论 0 0
  • 当一个人长时间没有工作,那么他的生活圈子会变化很大。 因为长时间固定的把自己圈在一个稳定的模式的社交圈里,没有在外...
    自闭一会儿阅读 1,517评论 0 1
  • 昨天买了一副老花镜,我的眼镜已经宣布衰老了,事物的成长规律不是你想怎么样,而是自然现象,要学着接受他!珍惜现在还没...
    东泽666阅读 1,148评论 0 1

友情链接更多精彩内容