質問:
出力を OS に同時に書き込むのは安全ですか複数のゴルーチンからの .Stdout?
コード サンプル:
<code class="go">package main import ( "fmt" "os" "strings" ) func main() { x := strings.Repeat(" ", 1024) go func() { for { fmt.Fprintf(os.Stdout, x+`aa\n`) } }() go func() { for { fmt.Fprintf(os.Stdout, x+`bb\n`) } }() go func() { for { fmt.Fprintf(os.Stdout, x+`cc\n`) } }() go func() { for { fmt.Fprintf(os.Stdout, x+`dd\n`) } }() <-make(chan bool) }</code>
回答:
提供されたコードは結果として得られませんデータ競争の中で。ただし、os.Stdout に書き込まれるデータの順序は非決定的であり、実行ごとに異なる場合があります。
説明:
推奨事項:
以上がGolang での os.Stdout への同時書き込みは安全かつ決定的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。