• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Go语言学习之goroutine详解

    什么是goroutine?

    Goroutine是建立在线程之上的轻量级的抽象。它允许我们以非常低的代价在同一个地址空间中并行地执行多个函数或者方法。相比于线程,它的创建和销毁的代价要小很多,并且它的调度是独立于线程的。在golang中创建一个goroutine非常简单,使用“go”关键字即可:

    package mainimport ( "fmt" "time")func learning() { fmt.Println("My first goroutine")}func main() { go learning() /* we are using time sleep so that the main program does not terminate before the execution of goroutine.*/ time.Sleep(1 * time.Second) fmt.Println("main function")}

    这段代码的输出是这样的:

    My first goroutinemain function

    如果把Sleep去掉的话,输出就会变成:

    main function

    这是因为,和线程一样,golang的主函数(其实也跑在一个goroutine中)并不会等待其它goroutine结束。如果主goroutine结束了,所有其它goroutine都将结束。

    下面看下Go语言学习之goroutine的相关内容。

    协程Coroutine

    特点

    go关键字开启一个协程

    func main() {
      for i := 0; i  10; i++ {
        go func(i int) {
          for {
            fmt.Println(i)
          }
        }(i)
      }
      time.Sleep(time.Millisecond)
    }

    goroutine可能的切换点(转让控制权)

    总结

    以上所述是小编给大家介绍的Go语言学习之goroutine详解,希望对大家有所帮助!

    您可能感兴趣的文章:
    • golang 并发编程之生产者消费者详解
    • golang并发编程的实现
    • Go并发编程实践
    • GO语言并发编程之互斥锁、读写锁详解
    • Golang Goroutine的使用
    • Go并发编程之正确使用goroutine的方法
    上一篇:Golang logrus 日志包及日志切割的实现
    下一篇:图文详解go语言反射实现原理
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Go语言学习之goroutine详解 语言学,习之,goroutine,详解,