国产探花免费观看_亚洲丰满少妇自慰呻吟_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語言程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清镇市| 堆龙德庆县| 蚌埠市| 城固县| 无为县| 长葛市| 蓬莱市| 大城县| 睢宁县| 阜康市| 广水市| 习水县| 桃园县| 环江| 青川县| 岳阳市| 寻乌县| 宝坻区| 崇阳县| 会宁县| 凌云县| 陇西县| 张北县| 桐庐县| 夏津县| 新竹县| 顺义区| 星子县| 玉山县| 丰顺县| 惠州市| 彭州市| 罗定市| 大庆市| 林口县| 舞钢市| 荆州市| 太保市| 台南市| 墨江| 开江县|