Heim > Backend-Entwicklung > Golang > Über die typische Verwendung von Golang Select

Über die typische Verwendung von Golang Select

藏色散人
Freigeben: 2021-05-08 11:56:26
nach vorne
1989 Leute haben es durchsucht

Die folgende Tutorial-Kolumne von golang wird Ihnen die typische Verwendung von Golang Select vorstellen. Ich hoffe, dass es Freunden in Not hilfreich sein wird!

Über die typische Verwendung von Golang Select

Code

package main

import (
    "fmt"
    "time"
)

func chanTest(ch chan int) {

    for { //select外层需要循环        select {        case value, ok := <-ch:
            fmt.Println(value, ok, time.Now())            if ok == false {
                fmt.Println("chan已经关闭", time.Now()) //select要自己判断退出,如果是for..range 形式,在读取完了关闭的chanel后,退出循环
                return
            }        default:
            fmt.Println("chan 空了", time.Now())            time.Sleep(time.Second * 5) //分支的处理会阻塞整个select
        }
    }
}

func main() {

    var ch = make(chan int, 100)    go chanTest(ch)

    ch <- 1
    ch <- 2
    time.Sleep(time.Second * 2)
    ch <- 3
    ch <- 4

    time.Sleep(time.Second)    close(ch)    for {        time.Sleep(time.Second)
    }
}
Nach dem Login kopieren

Es ist zu beachten, dass die Daten, die in den Kanal eingegeben wurden, verworfen werden, wenn der Kanal voll ist

Das obige ist der detaillierte Inhalt vonÜber die typische Verwendung von Golang Select. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage