iT邦幫忙

DAY 11
0

初學 Golang 30 天系列 第 11

初學 Golang 30 天(十一)Goroutine

  • 分享至 

  • xImage
  •  

雖然有點早,但是我們來講一下 Go 很酷的特色 Goroutine ,他類似於其他語言的 Thread。
###Goroutines
要使用 Goroutine 非常的簡單,只要一個字,一個很熟悉的字,「go」。
讓我們看看下面這個簡單的例子,

package main  
 
import "fmt"  
 
func f(n int) {  
for i := 0; i < 10; i++ {  
fmt.Println(n, ":", i)  
}  
}  
 
func main() {  
go f(0)  
}  

你執行後你會發現什麼東西都沒有印出!
不是 Go 有問題,因為使用 goroutine 是平行處理的,所以在還沒開始印 n 之前,main 這個主要的函式已經結束了。
我們使用一下內建的 time 函式,讓 main 韓式等一下,讓 goroutine 跑完。

package main  
 
import (  
"fmt"  
"time"  
)  
 
func f(n int) {  
for i := 0; i < 10; i++ {  
fmt.Println(n, ":", i)  
}  
}  
 
func main() {  
go f(0)  
time.Sleep(time.Second \* 1) // 暫停一秒鐘  
}  
 

你就可以看到印出 1 ~ 10 了。


上一篇
初學 Golang 30 天 - (十)函式
下一篇
初學 Golang 30 天(十二)Channel
系列文
初學 Golang 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
linda810501
iT邦新手 5 級 ‧ 2021-11-18 15:59:39

time.Sleep(time.Second * 1) // 暫停一秒鐘

是不是多了 \ ??

我要留言

立即登入留言