ホームページ  >  記事  >  バックエンド開発  >  [Go ラーニング] 同時実行制御 WaitGroup カウント セマフォ

[Go ラーニング] 同時実行制御 WaitGroup カウント セマフォ

little bottle
little bottle転載
2019-04-20 09:26:233388ブラウズ

この記事の編集者は、Go 言語の同時実行制御における WaitGroup カウント セマフォを学習し、特定の参考値を持つユース ケース コードを添付します。興味のある友人は学習しに来てください。

WaitGroup は、実行中の goroutine を記録および維持するために使用できるカウント セマフォです。WaitGroup の値が 0 より大きい場合、Wait メソッドはブロックします。

Done メソッドを呼び出して、実行中のゴルーチンを記録および維持します。 WaitGroup の値を取得し、最後にメイン関数


package main
import(
        "fmt"
        "runtime"
        "sync"
)
func main(){
        //只分配一个逻辑处理器给调度器使用
        runtime.GOMAXPROCS(1)
        //wg用来使main goroutine等待子goroutine结束
        var wg sync.WaitGroup
        //等待两个子goroutine结束
        wg.Add(2)
        fmt.Println("开启goroutine")
        go func(){
                defer wg.Done()
                //循环显示三遍字母表
                for count:=0;count<3;count++{
                        //循环显示字母表
                        for char:=&#39;a&#39;;char<&#39;a&#39;+26;char++{
                                fmt.Printf("%c ",char)
                        }   
                }   
        }() 
        go func(){
                defer wg.Done()
                //循环显示三遍字母表
                for count:=0;count<3;count++{
                        //循环显示字母表
                        for char:=&#39;A&#39;;char<&#39;A&#39;+26;char++{
                                fmt.Printf("%c ",char)
                        }   
                }   
        }() 
        //main goroutine等待子goroutine结束
        wg.Wait()
        fmt.Println("\ngoroutine结束")
}

をリリースします。Go 言語のチュートリアルをさらに知りたい場合は、go ビデオ チュートリアル に従ってください。 PHP中国語ウェブサイトです!

以上が[Go ラーニング] 同時実行制御 WaitGroup カウント セマフォの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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