为什么Go App要作为多个进程运行?

IFe*_*el3 1 linux operating-system process go

我有一个用go编写的非常简单的程序:

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("hello")
    time.Sleep(5 * time.Second)
    fmt.Println("good bye")
}

Run Code Online (Sandbox Code Playgroud)

现在,我使用“ go build”来构建它。当我看着htop看到应用程序正在运行时,它表明我的计算机上正在执行几个进程。

htop输出

有人可以向我解释为什么会这样吗?我希望单个goroutine程序可以作为单个进程运行。

Vol*_*ker 7

有人可以向我解释为什么会这样吗?

是。您正在使用htop或top与H一起显示线程。您的程序使用了与其他Go程序一样的多个线程(另请参见Pizza lord的注释)。