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

Ist der Golang-Pipeline-Thread sicher?

(*-*)浩
Freigeben: 2019-12-30 14:48:50
Original
5974 Leute haben es durchsucht

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() // 解锁
Nach dem Login kopieren

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!

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