return exit goexit
区别
- return 返回当前函数
- exit 退出当前进程(退出整个程序)
- GOEXIT 提前退出当前go程
测试
return
package main
import (
"fmt"
"time"
)
func main() {
go func() {
func(){
fmt.Println("这是子go程内部的函数")
return
}()
fmt.Println("子go程结束!") //这句会打印吗?
}()
fmt.Println("这是主go程")
time.Sleep(time.Second*5)
fmt.Println("over!")
}
exit
package main
import (
"fmt"
"os"
"time"
)
func main() {
go func() {
func(){
fmt.Println("这是子go程内部的函数")
os.Exit(-1)
}()
fmt.Println("子go程结束!") //这句会打印吗?
}()
fmt.Println("这是主go程")
time.Sleep(time.Second*5)
fmt.Println("over!")
}
goexit
package main
import (
"fmt"
"runtime"
"time"
)
func main() {
go func() {
func(){
fmt.Println("这是子go程内部的函数")
runtime.Goexit()
}()
fmt.Println("子go程结束!") ////这句会打印吗?
}()
fmt.Println("这是主go程")
time.Sleep(time.Second*5)
fmt.Println("over!")
}