为了账号安全,请及时绑定邮箱和手机立即绑定

在这个例子中我如何使用 Go 例程?

在这个例子中我如何使用 Go 例程?

Go
慕勒3428872 2021-06-08 13:08:02
我有以下代码片段。我创建了一个通道,最多从给定目录中获取 15 个文件名。我认为我可以创建 goroutines,其中一个在通道上生成条目,另一个使用它们。消费者应该打印从通道中获取的东西。我的程序在不打印的情况下执行,我怀疑这是因为消费者例程正在睡眠 - 不是为 for 循环的每次迭代启动了一个新的 go 例程吗?不应该最终从频道打印一些东西吗?func (u* uniprot) produce(n string) {    u.namesInDir <- n}   func (u* uniprot) consume() {    fmt.println(<-u.namesInDir)}       func (u* uniprot) readFilenames(dirname string) {    u.namesInDir = make(chan string, 15)    dir, err := os.Open(dirname)    errorCheck(err)     names, err := dir.Readdirnames(0)    errorCheck(err)    for _, n := range names {        go u.produce(n)        go u.consume()    }}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信