一架梯子,一头程序猿,仰望星空!
Golang中级特性面试题 > 内容正文

Go语言的协程是什么?它有什么优点?


问题简答

Go语言的协程是一种轻量级的线程,具有比线程更短的创建时间、更高的利用效率、更简洁的代码等优点。

问题详解:

Golang使用协程非常简单,只要两步。

  1. 定义一个函数,作为协程的任务函数。
  2. 使用 go 关键字启动协程。

下面是协程的例子

package main

import (
    "fmt"
    "time"
)

// 打印数字
func printNumbers2() {
    for i := 0; i < 10; i++ {
        time.Sleep(1 * time.Microsecond)
        fmt.Printf("%d ", i)
    }
}

// 打印字符
func printLetters2() {
    for i := 'A'; i < 'A'+10; i++ {
        time.Sleep(1 * time.Microsecond)
        fmt.Printf("%c ", i)
    }
}

func main() {
   // 使用go关键词,启动一个协程,执行printNumbers2函数
    go printNumbers2()
    //  在启动一个协程,执行printLetters2函数
    go printLetters2()

    // 休眠1秒
    time.Sleep(1 * time.Second)
    fmt.Println("\nExiting...")
}