1. package main
    2. import (
    3. "fmt"
    4. "time"
    5. )
    6. //从goroutine
    7. func newTask() {
    8. i:=0
    9. for {
    10. i++
    11. fmt.Printf("task %d\n",i)
    12. time.Sleep(1 * time.Second)
    13. }
    14. }
    15. //主goroutine
    16. func main() {
    17. //创建一个go线程,去执行newTask()
    18. go newTask()
    19. i:=0
    20. for {
    21. i++
    22. fmt.Printf("main %d\n",i)
    23. time.Sleep(1 * time.Second)
    24. }
    25. }
    1. package main
    2. import (
    3. "fmt"
    4. "time"
    5. )
    6. //从goroutine
    7. func newTask() {
    8. i:=0
    9. for {
    10. i++
    11. fmt.Printf("task %d\n",i)
    12. time.Sleep(1 * time.Second)
    13. }
    14. }
    15. //主goroutine
    16. func main() {
    17. //创建一个go线程,去执行newTask()
    18. go newTask()
    19. fmt.Println("main exit")
    20. }
    1. package main
    2. import (
    3. "fmt"
    4. "time"
    5. )
    6. func main() {
    7. //go创建一个形参为空,返回值为空的一个函数
    8. go func() {
    9. defer fmt.Println("defer")
    10. func(){
    11. defer fmt.Println("inner defer")
    12. fmt.Println("B")
    13. }()
    14. fmt.Println("A")
    15. }()
    16. //死循环
    17. for {
    18. time.Sleep(1 * time.Second)
    19. }
    20. }
    1. package main
    2. import (
    3. "fmt"
    4. "runtime"
    5. "time"
    6. )
    7. func main() {
    8. //go创建一个形参为空,返回值为空的一个函数
    9. go func() {
    10. defer fmt.Println("defer")
    11. func(){
    12. defer fmt.Println("inner defer")
    13. //退出当前goroutine
    14. runtime.Goexit()
    15. fmt.Println("B")
    16. }()
    17. fmt.Println("A")
    18. }()
    19. //死循环
    20. for {
    21. time.Sleep(1 * time.Second)
    22. }
    23. }
    1. package main
    2. import (
    3. "fmt"
    4. "time"
    5. )
    6. func main() {
    7. //goroutine
    8. go func(a int,b int) bool {
    9. fmt.Println(a,b)
    10. return true
    11. }(10,20)
    12. //死循环
    13. for {
    14. time.Sleep(1 * time.Second)
    15. }
    16. }