Heim  >  Artikel  >  Backend-Entwicklung  >  Ist der Golang-Pipeline-Thread sicher?

Ist der Golang-Pipeline-Thread sicher?

(*-*)浩
(*-*)浩Original
2019-12-30 14:48:505869Durchsuche

Ist der Golang-Pipeline-Thread sicher?

Wenn Thread-Sicherheit so definiert ist, dass mehrere Goroutinen gleichzeitig lesen und schreiben können, dann ist Golangs Kanal threadsicher. Beim gleichzeitigen Lesen und Schreiben desselben Kanals ist keine Sperre erforderlich.

Kanal in Golang 🎜>Kanal wird für die Kommunikation zwischen Goroutinen verwendet

Wenn Sie Kanal und nicht verwenden Wenn Sie gemeinsam genutzte globale Variablen verwenden, müssen Sie sie sperren

// synchornized 同步
// golang中的 sync包中有互斥锁 
var lock sync.Mutex  // mutex 互斥
lock.Lock() // 上锁
// 多个goroutine同时对相同的数据进行修改
lock.Unlock() // 解锁

Bei Verwendung der Synchronisationssperre ist die Effizienz der Parallelität sehr geringDer Kanal wird hauptsächlich für die Goroutine-Kommunikation und die Lösung des Problems des Hauptthreads verwendet Warten auf das Ende der Goroutine-Ausführung vor dem Beenden

Grundkonzept des Kanals

Im Wesentlichen eine FIFO-Datenstruktur – WarteschlangeThread-sicher, keine Sperre erforderlich

Kanäle haben Typen, wie z. B. String-Kanal-Chan-String, die nur String-Daten speichern können

Das obige ist der detaillierte Inhalt vonIst der Golang-Pipeline-Thread sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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