MST

星途 面试题库

面试题:Go语言中如何创建一个简单的Goroutine并传递参数

请写出一段Go代码,创建一个Goroutine,该Goroutine接收一个整数参数并打印出来。解释一下为什么要使用Go语言的Goroutine来处理并发任务。
22.9万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func printNumber(num int) {
    fmt.Println("Goroutine打印的数字:", num)
}

func main() {
    num := 10
    go printNumber(num)
    // 防止主线程退出
    select {}
}

使用Go语言的Goroutine来处理并发任务主要有以下原因:

  • 轻量级:Goroutine非常轻量级,创建和销毁的开销极小,可以轻松创建成千上万的Goroutine,相比传统线程,更适合高并发场景。
  • 易于编写:通过简单地使用go关键字就可以创建一个新的Goroutine,使得并发编程变得简单直观,不需要像其他语言那样处理复杂的线程创建、管理和同步等操作。
  • 高效的调度:Go语言的运行时系统(runtime)有自己的调度器,它采用M:N调度模型,将多个Goroutine映射到较少的操作系统线程上,能在用户态高效地调度Goroutine,提高了并发性能。