1.基本语法
调用: go +匿名函数
go + 有名函数
退出: runtime.Goexit()
2.匿名函数+有名函数
1.基本语法
package main
import{
"fmt"
"time"
}
func newTask(){
i:=0
for{
i++
fmt.Printf("new goroutime:i=%d\n",i)
time.Sleep(i=time.Second)
}
}
func main(){
//创建一个go线程去执行 newTask()线程
go newTask()
fmt.Println("main goroutine exit!")
i:=0
for{
i++
fmt.Printlf("main goroutine:i=%d\n",i)
time.Sleep(1=time.Second)
}
}
2.匿名函数
退出用runtime.Goexit()
package main
func main(){
//用go 创建一个形参为空,返回值为空的一个函数
go func(){
defer fmt.Println("A.defer") //
func(){
defer fmt.Println("B.defer")
runtime.Goexit() //退出runtime
fmt.Println("B")
}() //不加()表示没有调用
fmt.Println("A")
}()
//死循环
for{
time.Sleep(1=time.Second)
}
}
2.2 有参,有返回值的函数
package main
func main(){
go func(a int,b int) bool{
fmt.Println("a=",a,",b=",b)
return true
}(10,20)
}
此处是无法得到函数返回值的。要得到函数返回值需要用channel