Go语言之goroutine

开启gorouutine
1
import ( 2 "fmt" 3 "time" 4 ) 5 6 func Hello(){ 7 fmt.Println("hello") 8 } 9 10 func main() { 11 //开启goroutine需要在调用的函数前边加上go关键字即可 12 go Hello() 13 fmt.Println(" i love you") 14 //加入sleep的目的就是当go启动时默认创建一个goroutine只要main函数结束就都结束了因此睡眠1秒 15 time.Sleep(time.Second) 16 }

go语言开启多个goroutine

 1 import (
 2     "fmt"
 3     "sync"
 4 )
 5 
 6 var wg sync.WaitGroup
 7 
 8 func Hello(i int){
 9     fmt.Println("hello+",i)
10     //Done方法减少WaitGroup计数器的值,应在线程的最后执行。
11     wg.Done()
12 }
13 
14 func main() {
15     //启动多个goroutine
16     for i:=0;i<10;i++{
17         /*
18         Add方法向内部计数加上delta,delta可以是负数;如果内部计数器变为0,Wait方法阻塞等待的所有线程都会释放,如果计数器小于0,
19         方法panic。注意Add加上正数的调用应在Wait之前,否则Wait可能只会等待很少的线程。一般来说本方法应在创建新的线程或者其他应
20         等待的事件之前调用。
21         */
22         wg.Add(1)
23         go Hello(i)
24     }
25     /*
26         Wait方法阻塞直到WaitGroup计数器减为0。
27     */
28     wg.Wait()
29 }

猜你喜欢

转载自www.cnblogs.com/yh2924/p/12444459.html