Goroutines und Channels in Go ErklÀrt
Stellen Sie go vor einen Funktionsaufruf, und diese Funktion lĂ€uft nebenlĂ€ufig zum Rest des Programms, verwaltet von der Go-Runtime statt vom Betriebssystem. Eine zu starten ist der einfache Teil. Der schwierige Teil ist, zwei Goroutinen ein Ergebnis ĂŒbergeben zu lassen, ohne dass sie sich gegenseitig den Zustand kaputt machen, und genau das ist die Aufgabe von Channels. Was ist eine Goroutine? Eine Goroutine ist eine Funktion, die unabhĂ€ngig von der Funktion lĂ€uft, die sie gestartet hat, verwaltet von der Go-Runtime und nicht vom Betriebssystem. Ein OS-Thread reserviert ein Megabyte oder mehr Stack und kostet den Kernel echte Zeit fĂŒr die Planung. Eine Goroutine startet mit einem Stack von etwa 2 KB, der bei Bedarf wĂ€chst, und die Runtime multiplext viele Goroutinen auf eine Handvoll OS-Threads. Tausende davon zu starten ist normal. ...