Goroutine - cruisechang/wiki-golang GitHub Wiki
Goroutine相關函數
runtime.Goexit
呼叫此函數的Goroutine會被終止。
終止前會執行此函數位被執行的defer。
Goroutine狀態設置為Gdead。
runtime.Gosched
呼叫此函數的Goroutine會暫時讓出cpu時間,讓同範圍內其他goroutine有機會執行。
runtime.Gosched()只是讓本執行範圍內的goroutine有機會執行,
但不會等到他執行結束。以下範例不能保證哪個print會先被執行。
func main(){
go func(){fmt.Printf("pring in go \n") }()
runtime.Gosched()
fmt.Println("print after runtime.Ggshced")
}
確保go函數內使用的變數不被外界更動。
可用傳入參數方式,把使用的變數變成區域變數。
go func(id string){
fmt.Printf("My id is :%s. \n",id)
}("8769")
//傳入參數