跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教大家一个关于 golang channel 的问题,一个有缓存的 channel ,当里面的数据被接收完了之后,又没有其他线程往里面写数据,那么这时候是否会发生阻塞呢?
未分類
25 9 月 2020

请教大家一个关于 golang channel 的问题,一个有缓存的 channel ,当里面的数据被接收完了之后,又没有其他线程往里面写数据,那么这时候是否会发生阻塞呢?

请教大家一个关于 golang channel 的问题,一个有缓存的 channel ,当里面的数据被接收完了之后,又没有其他线程往里面写数据,那么这时候是否会发生阻塞呢?

資深大佬 : alfredhuo 0

你这个阻塞的表述有问题。

buffered channel 为 0 时,写 是不阻塞的,读是阻塞的。

buffered channel 满了的时候, 写是阻塞的,读是不阻塞的。

大佬有話說 (4)

  • 資深大佬 : akatquas

    要看你是在读 chan 还是在写, 读的话就会阻塞或者 deadlock(没有其他写), 写接着往下运行(写不超过缓存)

  • 資深大佬 : useben

    读的话会阻塞

  • 資深大佬 : sonxzjw

    这个完整的表述是:”有缓冲 channel,如果这个有缓冲的 channel 里面的数据被取完了,同时,新数据还没有写进来,那么从 channel 里面读取(消费)数据的 goroutine 是否会阻塞呢?”

  • 主 資深大佬 : alfredhuo

    没有超时机制的话,会。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具