登录
首页 >  Golang >  Go问答

多个 goroutine 打印到标准输出是否安全?

来源:Golang技术栈

时间:2023-03-09 21:15:49 131浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《多个 goroutine 打印到标准输出是否安全?》,本文主要会讲到golang等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

我的程序中有多个 goroutine,每个 goroutine 都在fmt.Println没有任何显式同步的情况下调用。这是安全的(即,每一行是否会单独出现而不会损坏数据),还是我需要创建另一个具有同步功能的 goroutine 来专门处理打印?

正确答案

不,即使您有时可能看不到任何麻烦,这也不安全。IIRC, fmt 包试图保持安全,因此可能会发生某种混合,但希望不会出现进程崩溃。

这是更通用的 Go 文档规则的一个实例:除非另有说明或从上下文中显而易见,否则事物对于并发访问是不安全的。

使用带有一些小的初始设置的 log 包,可以拥有一个不错的 fmt.Print* 功能子集的安全版本。

今天关于《多个 goroutine 打印到标准输出是否安全?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表