Heim > Backend-Entwicklung > Golang > So ermitteln Sie, ob der Kanal in Golang geschlossen ist

So ermitteln Sie, ob der Kanal in Golang geschlossen ist

Freigeben: 2020-01-13 09:31:45
Original
9356 Leute haben es durchsucht

So ermitteln Sie, ob der Kanal in Golang geschlossen ist

Map ist eine ungeordnete Sammlung von Schlüssel-Wert-Paaren. Der wichtigste Punkt von Map besteht darin, Daten schnell über einen Schlüssel abzurufen, der einem Index ähnelt und auf den Wert der Daten verweist.

Map ist eine Sammlung, daher können wir darüber iterieren, genau wie Arrays und Slices. Map ist jedoch ungeordnet und wir können die Reihenfolge, in der es zurückgegeben wird, nicht bestimmen. Dies liegt daran, dass Map mithilfe einer Hash-Tabelle implementiert wird.

Werfen wir einen Blick auf die Methode zur Bestimmung, ob ein Kanal in Golang geschlossen ist:

Bestimmen Sie beim Lesen eines Kanals, ob er geschlossen wurde

_,ok := <- jobs

Wenn der Kanal zu diesem Zeitpunkt geschlossen ist, ist der ok-Wert falsch

Beim Schreiben in die Kanal, stellen Sie fest, ob er geschlossen wurde

1._,ok := <- jobs

Wenn der Kanal zu diesem Zeitpunkt geschlossen ist, wird der Der ok-Wert ist falsch. Wenn der Kanal nicht geschlossen ist, wird ein Job verpasst

2. Verwenden Sie die Auswahlmethode

, um einen weiteren Kanal zu erstellen. Wenn es zu einer Zeitüberschreitung kommt, senden Sie „true“ an diesen Kanal, und der Produzent sendet Daten an den Kanal des Jobs. Verwenden Sie „select“, um die Zeitüberschreitung zu überwachen. Wenn es zu einer Zeitüberschreitung kommt, schließen Sie den Jobkanal.

go func() {
 time.Sleep(time.Second * 3)
 timeout <- true
 }()
Nach dem Login kopieren
go func() {
 for i := 0; ; i++ {
 select {
     case <-timeout:
         close(jobs)
         return
 
     default:
         jobs <- i
         fmt.Println("produce:", i)
         }
     }
 }()
Nach dem Login kopieren

Für mehr Golang Wenn Sie über Kenntnisse verfügen, beachten Sie bitte die Spalte Golang-Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob der Kanal in Golang geschlossen ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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