• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go 语言基础 进程Process 线程Thread 协程Goroutine

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

进程,Process

何为进程,简单来讲进程就是我们计算机里启动的程序,每启动一个程序,就启动了一条进程


如图片所示,这个叫活动监视器,后面还有个括号,写着所有进程,所以这些程序就是所谓的进程,如果进程结束,那么所有线程,协程也都会结束

那我们知道了进程 ,那线程又是什么呢

线程 Thread

还是这张图,细心的朋友应该已经看到了,每个程序后面都会有一列是线程,对没错,线程就是每个程序里单出来的一条线,一个线程只能干一件事情,而一个程序里有多个线程,就是可以干多件事情,一个线程占用相对进程要小很多,但是跟我们接下来要介绍的协程,那线程就可以算是重量级了。

协程 Coroutine 

那协程又是怎么理解呢,其实也很好理解,协程就可以理解为轻量级的线程。

go语言中的协程 Goroutine

go语言引以为傲的就是go的协程,我们叫他Goroutine,这也是go语言相对于别的语言的优势所在,以很小的资源代价,来运行多个协程,go语言是一门并发性语言,啥又为并发性呢

Concurrency并发性

同时可以执行多条路径,但是同一时间点上,只能执行1个。讲到并发性那我们就不能不说并行性

arallelism并行性

多条路径同时执行,真正的并行多核支持。

go语言作为一门并发性语言,可以很小的代价启动多条Goroutine,从而来完成需要完成的工作,他不是一个一个顺序完成,而是多个Goroutine一起争抢资源,谁抢到,谁运行,最大化利用有限资源,从而提高工作效率,在go语言中,启动Goroutine也很简单,只要在要执行的函数或方法前面加上go关键字,一条Goroutien就开启了,main函数也是一条Goroutine,main函数是主的Goroutine,只要他一结束,那么整个程序就会结束,所以一般我们会让main函数先等待,等其他子Goroutien结束之后,主函数在结束,而让main函数等待的方法有很多,比如,通道 channel,或者同步等待组 sync包的WaitGroup方法,又或者简单暴力的time包下的sleep方法,接下来我会一一介绍。

       


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap