简而言之,所谓并发编程是指在一台处理器上“同时”处理多个任务。

Golang语言中,并发使用的协程的机制,实现起来也是十分的方便,使用go关键字即可。 (推荐学习:go)

func main() {    ...    go fun(){        fmt.Println("Hi, Here is a goroutine.")    }()    ...}

什么是Goroutine

goroutine是Go并行设计的核心。goroutine说到底其实就是协程,它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。

执行goroutine只需极少的栈内存(大概是4~5KB),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。goroutine比thread更易用、更高效、更轻便。

一般情况下,一个普通计算机跑几十个线程就有点负载过大了,但是同样的机器却可以轻松地让成百上千个goroutine进行资源竞争。

Goroutine的创建

只需在函数调⽤语句前添加 go 关键字,就可创建并发执⾏单元。开发人员无需了解任何执行细节,调度器会自动将其安排到合适的系统线程上执行。

在并发编程中,我们通常想将一个过程切分成几块,然后让每个goroutine各自负责一块工作,当一个程序启动时,主函数在一个单独的goroutine中运行,我们叫它main goroutine。新的goroutine会用go语句来创建。

而go语言的并发设计,让我们很轻松就可以达成这一目的

更多相关文章

  1. go语言中包导入的一些问题
  2. golang是什么语言
  3. golang和c语言的区别是什么?
  4. golang语言可以做些什么
  5. golang是什么语言?
  6. golang语言的出现解决了什么问题
  7. golang中协程和线程的区别是什么?
  8. golang编程语言能开发啥
  9. go语言数据类型转换教程

随机推荐

  1. 昨天,终于拿到了腾讯 offer
  2. 独乐乐不如众乐乐,如何装逼的求众数
  3. 拜托,面试官别问我「布隆」了
  4. 使用快慢指针求解「环形链表」so easy!
  5. 动画:七分钟理解什么是KMP算法
  6. 推荐一个项目:数据结构和算法必知必会的 5
  7. 拓扑排序原理与解题套路
  8. 动画:什么是 BF 算法 ?
  9. 高考前一天,六月六号,加一!
  10. 前 K 个高频元素告诉你桶排序有啥用