同時実行性の高いシナリオでは、Go 関数は func を通じて宣言され、同期および非同期の実行をサポートします。 Goroutine は go によって作成された軽量のスレッドで、タスクの同時実行をサポートします。この例では、複数のゴルーチンが時間のかかるタスク関数を並行して実行することで、プログラムの同時実行性が向上します。ゴルーチンはオーバーヘッドが低く、スレッドよりもパフォーマンスが高く、必要に応じて同時実行性を拡張できます。
#高同時実行シナリオにおける Go での関数と Goroutine の使用
はじめに
Go 言語の同時実行機能は、同時実行性の高いシナリオを扱う場合に非常に役立ちます。関数とゴルーチンは、同時実行性を実現するための 2 つの中心的な概念です。関数は独立したコード単位であり、ゴルーチンはこれらの関数を実行する軽量のスレッドです。Function
関数は、func キーワード、その後に関数名、パラメータ リスト、戻り値の型を指定して宣言されます。関数は同期または非同期にすることができます。同期関数は現在のゴルーチン内ですぐに実行されますが、非同期関数は関数を実行するための新しいゴルーチンを作成します。
Goroutine
Goroutine は、go キーワードによって作成された軽量の同時実行ユニットです。スレッドに似ていますが、オーバーヘッドが低くなります。ゴルーチンは同時に実行できるため、プログラムの同時実行性が向上します。
ユースケース
次のシナリオを考えてみましょう。一連のタスクを処理する必要があり、それぞれに時間のかかる計算が必要です。 Go の関数とゴルーチンを使用して並列処理を実現できます。package main import ( "fmt" "time" ) func task(id int) { fmt.Println("Task", id, "started") time.Sleep(time.Second) fmt.Println("Task", id, "completed") } func main() { for i := 0; i < 10; i++ { go task(i) // 创建一个 Goroutine 来执行 task 函数 } time.Sleep(time.Second * 2) // 给 Goroutine 足够的时间完成 }この例では、時間のかかる計算を実行する
task 関数を定義します。この関数を実行するために
go キーワードを使用して新しいゴルーチンを作成し、タスクを識別するための一意の ID を渡します。 main 関数は 10 個のゴルーチンを作成し、各ゴルーチンがタスクの処理を担当します。ゴルーチンにタスクを完了するまでの時間を与えることで、ゴルーチンが並行して実行されることがわかります。
利点
関数とゴルーチンの使用には、同時実行性の高いシナリオでいくつかの利点があります。結論
Go 言語関数とゴルーチンは、高い同時実行性を実現するための強力なツールです。時間のかかるタスクをゴルーチンに入れることで、プログラムのパフォーマンスとスケーラビリティを向上させることができます。以上が同時実行性の高いシナリオでの golang 関数と goroutine の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。