国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

Go語言中關閉帶緩沖區的頻道實例分析

2020-04-01 19:18:59
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Go語言中關閉帶緩沖區的頻道,實例分析了帶緩沖區頻道的原理與用法,以及關閉帶緩沖區頻道的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例分析了Go語言中關閉帶緩沖區的頻道。分享給大家供大家參考。具體分析如下:

Go語言提供了兩種頻道,帶緩沖區和不帶緩沖區的。不帶緩沖區的頻道,發送和接收是同步的,必須接收端接收了消息,發送端才能從發送調用中解脫。帶緩沖區的頻道,在緩沖區滿之前,發送和接收是異步的,發送端的發送操作只保證把消息放入緩沖區。

Go的頻道是可以關閉的,關閉頻道的目的是讓接收端知道不會再有消息從這個頻道進入,我們可能會用某個頻道的關閉來表示某種狀態的終結。

當我們關閉一個帶緩沖區的頻道時,如果緩沖區中還有消息,接收端是會繼續接收完剩余消息呢?還是直接就丟棄剩余消息呢?下面是我做的一個試驗代碼:

復制代碼代碼如下:
package main
import "fmt"
func main() {
    input := make(chan int, 10)
    wait  := make(chan int)
    for i := 0; i < 10; i ++ {
        input <- i
    }
    close(input)
    go func() {
        for {
            if i, ok := <- input; ok {
                fmt.Println(i)
            } else {
                break
            }
        }
        wait <- 1
    }()
    <-wait
}

 

希望本文所述對大家的Go語言程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西充县| 南通市| 九江县| 罗甸县| 泽州县| 衡东县| 宁都县| 龙川县| 太白县| 那曲县| 大兴区| 巨野县| 高淳县| 邮箱| 武义县| 乌兰浩特市| 田东县| 石阡县| 北碚区| 西丰县| 靖西县| 扶风县| 鄂尔多斯市| 富阳市| 桦南县| 洞头县| 即墨市| 孟州市| 咸宁市| 商丘市| 桐庐县| 甘泉县| 阳江市| 嘉定区| 青铜峡市| 黎平县| 驻马店市| 昔阳县| 普陀区| 秦皇岛市| 建瓯市|