在Golang 中,go func() {} 表示创建一个新的 Goroutine(轻量级线程),用于异步执行函数。
具体来说,go func() {} 创建了一个匿名函数(即没有函数名的函数),并在其前面加上关键字 go,以表示该函数应该在一个新的 Goroutine 中异步执行。因此,当程序执行到该语句时,它会立即创建一个新的 Goroutine,然后在该 Goroutine 中执行这个匿名函数。该语句会立即返回,而不会等待该函数执行完成。
下面是一个简单的示例,演示如何使用go func() {}:
go
Copy code
package main
import (
"fmt"
"time"
)
func main() {
// 创建一个新的 Goroutine,异步执行匿名函数
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine: ", i)
time.Sleep(time.Second)
}
}()
// 在主 Goroutine 中执行这个循环
for i := 0; i < 5; i++ {
fmt.Println("Main: ", i)
time.Sleep(time.Second)
}
}
在上面的示例中,我们创建了一个新的Goroutine,用于异步执行一个循环。在主 Goroutine 中,我们也执行了一个类似的循环。由于两个循环都包含了 time.Sleep(time.Second),因此它们将交替执行,输出类似下面的结果:
makefile
Copy code
Main: 0
Goroutine: 0
Main: 1
Goroutine: 1
Main: 2
Goroutine: 2
Main: 3
Goroutine: 3
Main: 4
Goroutine: 4
可以看到,主Goroutine 和新创建的 Goroutine 在不同的时间并行执行。这种并发执行方式使得程序在执行计算密集型或阻塞式操作时能够更有效地利用系统资源,提高程序的性能和响应能力。
版权归原作者 lixora 所有, 如有侵权,请联系我们删除。