Loading

goroutine

image-20220830113129609

package main

import (
   "fmt"
   "time"
)

//子goroutine
func newTask() {
   i := 0
   for {
      i++
      fmt.Printf("new Goroutine : i = %d\n", i)
      time.Sleep(1 * time.Second)
   }
}

//主goroutine
func main() {
   //创建一个go程 去执行newTask() 流程
   go newTask()

   fmt.Println("main goroutine exit")
   /*
      i := 0
      for {
         i++
         fmt.Printf("main goroutine: i = %d\n", i)
         time.Sleep(1 * time.Second)
      }
   */
}
package main

import (
   "fmt"
   "runtime"
   "time"
)

func main() {
      //用go创建承载一个形参为空,返回值为空的一个函数
      go func() {
         defer fmt.Println("A.defer")

         func() {
            defer fmt.Println("B.defer")
            //退出当前goroutine
            runtime.Goexit()
            fmt.Println("B")
         }()

         fmt.Println("A")
      }()

   go func(a int, b int) bool {
      fmt.Println("a = ", a, ", b = ", b)
      return true
   }(10, 20)
   //死循环
   for {
      time.Sleep(1 * time.Second)
   }

}
posted @ 2022-08-30 11:33  suehoo  阅读(38)  评论(0)    收藏  举报