管道会返会Reader和Writer。只有把所有数据读光了才会再写。
package main
import (
"io"
"fmt"
"time"
)
func test() {
r,w := io.Pipe()
go func(r *io.PipeReader) {
for i:=0; i < 10; i++ {
a := make([]byte, 1)
r.Read(a)
fmt.Println(a)
}
}(r)
go func(w *io.PipeWriter) {
for i :=0; i<10; i++ {
var a[] byte
a = append(a, byte(i))
a = append(a, byte(i))
w.Write(a)
time.Sleep(1*time.Second)
}
}(w)
}
func main() {
test()
time.Sleep(1000*time.Second)
}
© 著作权归作者所有