gpt4 book ai didi

concurrency - IO channel 与读写器

转载 作者:IT王子 更新时间:2023-10-29 01:24:56 25 4
gpt4 key购买 nike

既然 Go 有 channel ,我想知道为什么标准库似乎没有被设计为也将它们用于 IO。

有读取器和写入器类型,但使用 channel 会有什么问题?

一个函数可以返回一个字节 slice channel (假设单字节,甚至单比特返回效率太低),并接受一个用于取消请求的 channel 和一个用于错误报告的 channel 。

-好奇的 Go 新手。

最佳答案

channel 非常适合 goroutine 之间的通信。当一个程序做一些简单的事情时,例如读取标准输入,对流做一些事情并将结果输出到标准输出 - 然后使用 channel 是一种矫枉过正,不必要地损害性能。

只要标准库在某些地方没有提供特定于 goroutine 相互通信的东西,就没有充分的理由对简单的操作建模,比如 io.Readerio.Writer 使用 channel ,分别具有基于 channel 的方法集 (API)。

此外,在需要的地方,简单的实现可以包装在 channel 中,而相反,将 channel 实现“展开”回其原语是不可能的。此外,Go 作者显然喜欢明确性,导致性能瓶颈没有被隐藏(并且令人惊讶)。

关于concurrency - IO channel 与读写器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com