Sleep()と同期の間に関係はありますか?

ankush981:

チャネルを示す次のプログラムを検討してください。

package main

import (
    "fmt"
)

func pinger(c chan string) {
    for i := 0; ; i++ {
        c <- "ping"
    }
}

func ponger(c chan string) {
    for i := 0; ; i++ {
        c <- "pong"
    }
}

func printer(c chan string) {
    for {
        msg := <-c
        fmt.Println(msg)
        //time.Sleep(time.Second * 1)
    }
}

func main() {
    var c = make(chan string)

    go pinger(c)
    go ponger(c)
    go printer(c)

    var input string
    fmt.Scanln(&input)
}

time.Sleep呼び出しのコメントを外すと、出力は "ping"と "pong"になり、予測可能な方法で順番に表示されます。ただし、コメントを追加すると、順序が予測できなくなります。私はGoの初心者で、この同期を有​​効にしたのは何だろうと思います。待機時間を追加すると、残りのチャネルフィーダーがラインを牽引するのはなぜですか?

jeevatkm:

Sleep()と同期の間に関係はありますか?

番号

チャネルに送信された値とチャネルから取得した値の間で同期が行われます。

var c = make(chan string)

チャネルcは文字列型の値を一度に1つ保持できます。値がチャネルから取得されるまで<- c関数pingerpongerチャネルに値を送信できませんc(つまり、ピンガーとポンガーは、プリンター関数から読み取るまで、チャネルに値を送信するのを待っています)。

したがって、あなたの例では、プリンタ関数のSleepチャネルから値を読み取るためにfuncを介して時間遅延を導入しましたc

それがSleepfunc の助けを借りて素敵で遅い読み取りをする理由です:)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

`BehaviorSubject`と` Sink`の間に関係はありますか?と `StreamController`?

分類Dev

AVAudioEngineとAVAudioSessionの間に関係はありますか?

分類Dev

glPushMatrix()とglBegin()の間に関係はありますか?

分類Dev

SaveTokensとPostLogoutRedirectUrisの間に関係はありますか?

分類Dev

schema.orgとWAI-ARIAの間に関係はありますか?

分類Dev

Haskellのドル記号($)とid関数の間に関係はありますか?

分類Dev

さまざまな `libc.so`の間にはどのような違いと関係がありますか?

分類Dev

DOM要素とHTML要素の間には常に1対1の関係がありますか?

分類Dev

具象化を理解する-「xとyの間にはどのような関係がありますか?」

分類Dev

共有要素の移行とアプリのテーマの間に関係はありますか?

分類Dev

それは良いですか、それともit()の間に関係がありませんか?

分類Dev

画像のサイズとファイルサイズの間に関係はありますか?

分類Dev

MobX ObservablesはRxJSのものと関係がありますか?

分類Dev

buildScriptの依存関係にGradleの「依存関係」タスクはありますか?

分類Dev

AJAXはXMLと何の関係がありますか?

分類Dev

iOS NSPredicateは、深い関係から多くの関係にあります

分類Dev

参加者と会話の間に1対多の関係を持つことにスケーラビリティの問題はありますか?

分類Dev

Pandas DataFrameの前の列間の関係に基づいて列を作成する方法はありますか?

分類Dev

Laravel Eloquent-関係には関係がありますか?

分類Dev

GCCバージョンとOpenMPバージョンの間にはどのような相関関係がありますか?

分類Dev

firestore snapshotlistenerのライフサイクルと価格設定との間にはどのような関係がありますか?

分類Dev

CAPLにWait()またはSleep()関数はありますか?

分類Dev

scipy.optimize.curve_fitのパラメーター間に依存関係を追加する方法はありますか

分類Dev

高いディスク使用量と高い再割り当てセクター数の間には関係がありますか?

分類Dev

インターフェイスを実装するクラスとそのインターフェイスの間に関係はありますか?

分類Dev

モデルのclean()メソッドとフォームのclean()メソッドの間に関係はありますか?

分類Dev

Meteorの「同じ名前の」HTMLファイルとJSファイルの間に特別な関係はありますか?

分類Dev

関数Odd(x)と((x Mod 2)<> 0)の間に違いはありますか

分類Dev

Javaの「同期」とC#の「ロック」の間に違いはありますか?

Related 関連記事

  1. 1

    `BehaviorSubject`と` Sink`の間に関係はありますか?と `StreamController`?

  2. 2

    AVAudioEngineとAVAudioSessionの間に関係はありますか?

  3. 3

    glPushMatrix()とglBegin()の間に関係はありますか?

  4. 4

    SaveTokensとPostLogoutRedirectUrisの間に関係はありますか?

  5. 5

    schema.orgとWAI-ARIAの間に関係はありますか?

  6. 6

    Haskellのドル記号($)とid関数の間に関係はありますか?

  7. 7

    さまざまな `libc.so`の間にはどのような違いと関係がありますか?

  8. 8

    DOM要素とHTML要素の間には常に1対1の関係がありますか?

  9. 9

    具象化を理解する-「xとyの間にはどのような関係がありますか?」

  10. 10

    共有要素の移行とアプリのテーマの間に関係はありますか?

  11. 11

    それは良いですか、それともit()の間に関係がありませんか?

  12. 12

    画像のサイズとファイルサイズの間に関係はありますか?

  13. 13

    MobX ObservablesはRxJSのものと関係がありますか?

  14. 14

    buildScriptの依存関係にGradleの「依存関係」タスクはありますか?

  15. 15

    AJAXはXMLと何の関係がありますか?

  16. 16

    iOS NSPredicateは、深い関係から多くの関係にあります

  17. 17

    参加者と会話の間に1対多の関係を持つことにスケーラビリティの問題はありますか?

  18. 18

    Pandas DataFrameの前の列間の関係に基づいて列を作成する方法はありますか?

  19. 19

    Laravel Eloquent-関係には関係がありますか?

  20. 20

    GCCバージョンとOpenMPバージョンの間にはどのような相関関係がありますか?

  21. 21

    firestore snapshotlistenerのライフサイクルと価格設定との間にはどのような関係がありますか?

  22. 22

    CAPLにWait()またはSleep()関数はありますか?

  23. 23

    scipy.optimize.curve_fitのパラメーター間に依存関係を追加する方法はありますか

  24. 24

    高いディスク使用量と高い再割り当てセクター数の間には関係がありますか?

  25. 25

    インターフェイスを実装するクラスとそのインターフェイスの間に関係はありますか?

  26. 26

    モデルのclean()メソッドとフォームのclean()メソッドの間に関係はありますか?

  27. 27

    Meteorの「同じ名前の」HTMLファイルとJSファイルの間に特別な関係はありますか?

  28. 28

    関数Odd(x)と((x Mod 2)<> 0)の間に違いはありますか

  29. 29

    Javaの「同期」とC#の「ロック」の間に違いはありますか?

ホットタグ

アーカイブ