질문:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!