チャネルを通じて共有メモリの Goroutine を実装できます。チャネルを作成して要素の型を指定します。 Goroutine を開始してチャネルにデータを書き込みます。メインの Goroutine で範囲ループを使用して、チャネルからデータを読み取ります。書き込みの完了は、チャネルを閉じることによって示されます。
Goで共有メモリGoroutineを作成するにはどうすればよいですか?
Go では、共有メモリはチャネルを通じて実装されます。チャネルは本質的に、ゴルーチン間で値を送受信するための先入れ先出し (FIFO) キューです。
実践例
共有メモリのGoroutineの作成は非常に簡単です。サンプル コードは次のとおりです。
package main import ( "fmt" "sync" ) func main() { // 创建一个 channel ch := make(chan int) // 创建 Goroutine 并启动,它将向 channel 写入数据 var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() for i := 0; i < 10; i++ { ch <- i } // 关闭 channel 表示完成 close(ch) }() // 从 channel 中读取数据 for v := range ch { fmt.Println(v) } wg.Wait() }
説明
int
) を指定する必要があります。 int
)。go
语句启动一个新的 Goroutine,并将一个函数作为参数传递。close(ch)
go
ステートメントは、新しいゴルーチンを開始し、関数をパラメーターとして渡します。 Goroutine が完了したら、close(ch)
を使用してチャネルを閉じることができます。
以上がGoで共有メモリGoroutineを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。