下面的代码不会引发数据竞争
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)
}
我尝试了多个长度的数据,变体https://play.golang.org/p/29Cnwqj5K30
这篇文章说它不是TS。
这封邮件并没有真正回答这个问题,或者我不明白。
os和fmt的包文档对此没有提及太多。我承认我没有挖掘这两个包的源代码来寻找进一步的解释,它们对我来说似乎太复杂了。
有哪些建议和参考?
幕布斯7119047
相关分类