Go 协程 在执行上来说是轻量级的线程。

golang使用协程用go关键字。后边正常调用函数。

Example:

package main

import "fmt"


func ak(str string){
    for i:=0; i<3; i++{
        fmt.Println(str, ":", i)
    }
}


//协程main中要注意,协程还没执行完main就退出了。
//换句话说就是main没有等待所有goroutine结束即退出。
func main(){
    ak("direct")

    go ak("goroutine")
    go ak("sk")


    //go异步运行,这里用Scanln等待,需要退出时,要工按键退出。
    var input string
    fmt.Scanln(&input)
    fmt.Println("done")

}

Result:

$ go run example.go
direct : 0
direct : 1
direct : 2
goroutine : 0
sk : 0
sk : 1
sk : 2
goroutine : 1
goroutine : 2

从结果可以看出,direct是阻塞输出。goroutine和sk是异步交替输出。

 

坐标: 上一个例子  下一个例子

 

相关文章:

  • 2022-02-02
  • 2021-12-19
  • 2021-07-15
  • 2021-05-26
  • 2022-03-04
  • 2021-07-02
  • 2021-12-30
  • 2021-06-21
猜你喜欢
  • 2021-08-01
  • 2022-03-08
  • 2021-09-05
  • 2021-07-06
  • 2021-06-11
  • 2021-09-06
  • 2021-09-09
相关资源
相似解决方案