gchan
优雅的Channel
操作。原生的channel
操作在channel
关闭后再向channel
发送数据,或者多次关闭channel
会引发panic
,gchan
模块使得channel
的操作变得优雅。
使用场景:
所有使用chan
的场景都可使用gchan
替代。
使用方式:
import "github.com/gogf/gf/g/container/gchan"
接口文档:
https://godoc.org/github.com/gogf/gf/g/container/gchan
gchan
与原生channel
的性能测试:
john@johnstation:~/Workspace/Go/GOPATH/src/github.com/gogf/gf/g/container/gchan$ go test *.go -bench=".*"
goos: linux
goarch: amd64
BenchmarkGchanPushAndPop-8 20000000 71.9 ns/op
BenchmarkChannelPushAndPop-8 50000000 39.3 ns/op
PASS
ok command-line-arguments 3.663s