Heim > Backend-Entwicklung > Golang > Was ist der Unterschied zwischen Coroutinen und Threads in Golang?

Was ist der Unterschied zwischen Coroutinen und Threads in Golang?

青灯夜游
Freigeben: 2019-12-25 18:06:38
Original
3417 Leute haben es durchsucht

Was ist der Unterschied zwischen Coroutinen und Threads in Golang?

Der Unterschied zwischen Coroutinen und Threads in Golang

Im Allgemeinen sind Coroutinen wie leichte Threads.

Threads haben im Allgemeinen einen festen Stapel und eine feste Größe. Um Ressourcenverschwendung (oder Ressourcenmangel) zu vermeiden, verfolgen Goroutinen eine dynamische Expansions- und Kontraktionsstrategie: Die anfängliche Menge beträgt 2.000 und die maximale Menge kann auf 1 G erweitert werden.

Jeder Thread hat eine ID, die beim Erstellen des Threads zurückgegeben wird, sodass wir den Thread über die Thread-ID manipulieren können. Da es in Golang jedoch kein solches Konzept gibt, müssen wir die Erstellung und Veröffentlichung von Coroutinen zu Beginn der Codierung in Betracht ziehen.

In Bezug auf den Planungsaufwand für den Thread- und Goroutine-Wechsel

In Bezug auf den Thread-/Goroutine-Wechselaufwand ist Goroutine weitaus kleiner als Threads

Thread: beinhaltet Moduswechsel (Wechsel). vom Benutzermodus zum Kernelmodus), 16 Register, PC, SP... und andere Registeraktualisierungen usw.

Da die Coroutine vom Coroutine-Scheduler im Benutzermodus abgeschlossen wird und nicht im Kernel eingeschlossen werden muss, sind die Kosten gering.

Also Goroutine: nur drei Registerwertänderungen – PC/SP/DX.

Verwandte Empfehlungen: Golang-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Coroutinen und Threads in Golang?. 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