今天介紹 golang的goroutine,這是一個比thread輕量且快速的東西.
使用golang裡的 go 指令,就可以很容易的產生goroutine.
不要與傳統的goto指令搞混了喔! goto是改變流程,go是建立產生goroutine.
請看以下範例:
// hello53
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("主函式啟動!")
// 啟動一個 goroutine
go 玉面飛鷹()
// 啟動另一個 goroutune
go 油達大師()
fmt.Println("主函式睡眠中!")
time.Sleep(time.Second * 12)
fmt.Println("主函式結束!")
}
func 玉面飛鷹() {
fmt.Println("大家好! 我是人見人愛,花見花開的玉面飛鷹!")
fmt.Println("看我飛~~~~~ 噗~ 噗~噗~ 展翅飛翔~!")
time.Sleep(time.Second * 7)
fmt.Println("報告! 玉面飛鷹到達目的地!")
}
func 油達大師() {
fmt.Println("師大達油是我! 好家大!")
time.Sleep(time.Second * 1)
fmt.Println("砍!!!")
fmt.Println("工收完砍!")
}
執行結果:
./hello53
主函式啟動!
主函式睡眠中!
大家好! 我是人見人愛,花見花開的玉面飛鷹!
看我飛~~~~~ 噗~ 噗~噗~ 展翅飛翔~!
師大達油是我! 好家大!
砍!!!
工收完砍!
報告! 玉面飛鷹到達目的地!
主函式結束!
油達大師比玉面飛鷹快多了~~~