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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。