Tay*_*mon 22 concurrency synchronization go goroutine
我的程序中有多个goroutine,每个都在fmt.Println
没有任何显式同步的情况下进行调用.这是安全的(即,每条线路是否单独出现而没有数据损坏),或者我是否需要创建另一个带有同步的goroutine来专门处理打印?
zzz*_*zzz 18
不,即使你有时候没有发现任何麻烦,也不安全.IIRC,fmt包尝试安全,因此可能会发生某种混合,但希望没有进程崩溃.
这是一个更通用的Go文档规则的实例:除非另有说明或从上下文中显而易见,因此并发访问不安全.
可以使用日志包以及一些小的初始设置来获得fmt.Print*功能的一个很好的子集的安全版本.