ホームページ  >  記事  >  バックエンド開発  >  Go言語のgorouteコルーチン

Go言語のgorouteコルーチン

尚
転載
2020-02-29 16:53:313454ブラウズ

Coroutine は Go 言語の軽量スレッド実装であり、Go ランタイムによって管理されます。次に、go 入門チュートリアル のコラムから、go 言語の goroute コルーチンを紹介します。

Go言語のgorouteコルーチン

ゴルート コルーチン

プロセスとスレッド

プロセスはシステム リソースです割り当てとスケジューリングの基本単位。スレッドは CPU のスケジューリングとディスパッチの基本単位です。プロセスは複数のスレッドを作成およびキャンセルできます

同時実行性と並列性

複数のスレッドプログラムは 1 つのコアを備えた CPU で実行され、同時実行されます。

マルチスレッド プログラムは、複数のコアを備えた CPU で実行され、並列実行されます。

コルーチンとスレッド

コルーチン: 独立したスタック スペース、共有ヒープ メモリ、ユーザーによって制御されるスケジューリング。基本的にユーザー レベルのスレッドと同様で、これらのユーザー レベルのスレッドのスケジューリングはそれ自体で実装されます。

スレッド: 1 つのスレッドで複数のコルーチンを実行できます。

単純な同時実行のケース。この 2 つのコルーチンは 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 中国語 Web サイトを参照してくださいgo 言語チュートリアルカラム 。

以上がGo言語のgorouteコルーチンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。