golang的管道阻塞问题

编程入门 行业动态 更新时间:2024-10-21 06:02:08

golang的<a href=https://www.elefans.com/category/jswz/34/1771259.html style=管道阻塞问题"/>

golang的管道阻塞问题

package  mainimport ("fmt""sync"//"time"
)
var  wg  sync.WaitGroup
func writeData(intchan chan int){defer  wg.Done()for i := 1; i <= 9; i++ {intchan<-ifmt.Println("写入的数据为:",i)//time.Sleep(time.Second)}close(intchan)
}
func readData( intchan chan int)  {defer  wg.Done()for value := range  intchan {fmt.Println("读取的数据为",value)}
}func main() {intchan := make(chan int ,10)wg.Add(1)go writeData(intchan)//go  readData(intchan)wg.Wait()}

package  mainimport ("fmt""sync"//"time"
)
var  wg  sync.WaitGroup
func writeData(intchan chan int){defer  wg.Done()for i := 1; i <= 10; i++ {intchan<-ifmt.Println("写入的数据为:",i)//time.Sleep(time.Second)}close(intchan)
}
func readData( intchan chan int)  {defer  wg.Done()for value := range  intchan {fmt.Println("读取的数据为",value)}
}func main() {intchan := make(chan int ,10)wg.Add(2)go writeData(intchan)//go  readData(intchan)wg.Wait()}

但是这里面wg.Add(2)主从协程我没明白。我起一个的时候是不会阻塞的,起两个会。跟容量就没关系,只要不读就会阻塞。

读写频率不同,也是可以,有读就不会阻塞

更多推荐

golang的管道阻塞问题

本文发布于:2023-11-16 02:39:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1611691.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:管道   golang

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!