首頁  >  文章  >  後端開發  >  go語言之goroute協程

go語言之goroute協程

尚
轉載
2020-02-29 16:53:313465瀏覽

協程(coroutine)是Go語言中的輕量級線程實現,由Go運行時(runtime)管理。以下就來由go入門教學專欄介紹一下go語言中的goroute協程。

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中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除