go(11)-goroutine

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






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值