協程(coroutine)是Go語言中的輕量級線程實現,由Go運行時(runtime)管理。以下就來由go入門教學專欄介紹一下go語言中的goroute協程。
goroute協程
#行程與執行緒
##行程是系統進行資源分配和調度的基本單位,線程是cpu調度和發派的基本單位,一個進程可以創建和撤銷多個線程##並發和並行多線程程式在一個核的cpu上面運行,是並行
多執行緒程式在多個核的cpu上面運行,這是並行
協程和執行緒協程: 獨立的堆疊空間,共享的堆內存,調度由用戶自己控制,本質上有點類似於用戶級的線程,這些用戶級線程的調度是自己來實現的。
執行緒:一個執行緒可以跑多個協程。
一個簡單的並發案例這塊兩個協程會打印出hello和world
package main import( "fmt" "time" ) func test(){ for{ fmt.Println("hello") time.Sleep(time.Second) } } func main(){ go test() for{ fmt.Println("world") time.Sleep(time.Second) } }
更多go語言知識請關注php中文網
go語言教程以上是go語言之goroute協程的詳細內容。更多資訊請關注PHP中文網其他相關文章!