初级会员
  • 第 61988 位会员
  • huazonglin
  • 华宗林
  • 2021-05-05 18:21:09
  • Offline
  • 20 40

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • Hi, 命令行参数放在另一个goroutine 的原因是,这里用的worklist是一个不带缓存的Channels, 不带缓存的Channels在"读/写"的时候,都会产生阻塞,直到有另一个goroutine会"写/读"这个Channels, 所以, 代码修改为直接给worklist赋值的如下: ```go func main() { worklist := make(chan []string) // Start with the command-line arguments. worklist <- os.Args[1:] // 这里main gogroutine 会阻塞住,直到worklist 在另一个goroutine被写入。 // 所以,为了避免被main goroutine被阻塞住,需要在这里新开一个goroutine. // Crawl the web concurrently. seen := make(map[string]bool) ```