golang中如何退出goroutine
package main import ( "fmt" "runtime" "time" ) func main() { // 用goroutine创建承载一个形参为空,返回值为空的一个函数 go func() { defer fmt.Println("A.defer") func() { defer fmt.Println("B.defer") // 退出当前的goroutine runtime.Goexit() fmt.Println("B") }() fmt.Println("A") }() time.Sleep(time.Millisecond * 200) // 因为goroutine是异步操作,所以不能直接拿到返回值的, // 如果两个goroutine中想互相通信,可以通过channel go func(a, b int) bool { fmt.Println("a = ", a, "b = ", b) return true }(10, 20) } // 输出结果 /* B.defer A.defer */