GO语言"io"包中"Pipe"函数的用法及代码示例。
用法:
func Pipe()(*PipeReader, *PipeWriter)
Pipe 创建一个同步的内存管道。它可用于连接期望 io.Reader 的代码和期望 io.Writer 的代码。
管道上的读取和写入是一对一匹配的,除非需要多个读取来消耗单个写入。也就是说,对PipeWriter 的每次写入都会阻塞,直到它满足来自PipeReader 的一个或多个读取,这些读取完全消耗了写入的数据。数据直接从Write复制到对应的Read(或Reads);没有内部缓冲。
彼此并行或使用 Close 调用 Read 和 Write 是安全的。对 Read 的并行调用和对 Write 的并行调用也是安全的:各个调用将按顺序进行门控。
例子:
package main
import (
"fmt"
"io"
"log"
"os"
)
func main() {
r, w := io.Pipe()
go func() {
fmt.Fprint(w, "some io.Reader stream to be read\n")
w.Close()
}()
if _, err := io.Copy(os.Stdout, r); err != nil {
log.Fatal(err)
}
}
输出:
some io.Reader stream to be read
相关用法
- GO PutUvarint用法及代码示例
- GO ParseAddress用法及代码示例
- GO PlainAuth用法及代码示例
- GO Print用法及代码示例
- GO ParseUint用法及代码示例
- GO ParseIP用法及代码示例
- GO Pow10用法及代码示例
- GO Printf用法及代码示例
- GO ParseMediaType用法及代码示例
- GO ParseInt用法及代码示例
- GO ParseCIDR用法及代码示例
- GO PutVarint用法及代码示例
- GO Perm用法及代码示例
- GO ParseInLocation用法及代码示例
- GO PathUnescape用法及代码示例
- GO ParseDuration用法及代码示例
- GO ParseFile用法及代码示例
- GO Parse用法及代码示例
- GO Pool用法及代码示例
- GO Println用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Pipe。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。