golangchannel读取数据的几种情况.docxVIP

  • 0
  • 0
  • 约7.61千字
  • 约 18页
  • 2025-05-15 发布于四川
  • 举报

golangchannel读取数据的几种情况

目录用var定义channel且不make用var定义channel且make直给写操作加for直给读操作加for读写都加for读channel的第二个返回值关闭channel继续读写完然后关闭channel再开始读加个selectchannel未及时关闭总结

用var定义channel且不make

wg:=sync.WaitGroup{}

varchchanstring

read:=func(){

???fmt.Println(reading)

???s:=-ch

???fmt.Println(read:,s)

???wg.Done()

write:=func(){

???fmt.Println(writing)

???s:=t

???ch-s

???fmt.Println(write:,s)

???wg.Done()

wg.Add(2)

goread()

gowrite()

fmt.Println(waiting)

wg.Wait()

输出:

waiting

writing

reading

fatalerror:allgoroutinesareasleep-deadlock!

这种情况并不是报错空指针,而是死

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档