Go

Podstawy goroutines

Goroutines, słowo kluczowe go, sync.WaitGroup, runtime.GOMAXPROCS, wycieki goroutine

20 pytań z rozmów·
Junior
1

Czym jest goroutine w Go?

Odpowiedź

Goroutine to funkcja wykonywana współbieżnie z innymi funkcjami, zarządzana przez runtime Go zamiast przez OS. Jest niezwykle lekka (kilka KB początkowego stosu) w porównaniu z wątkiem OS (kilka MB). Scheduler Go może multipleksować tysiące, a nawet miliony goroutines na ograniczonej liczbie wątków OS, dzięki czemu współbieżność w Go jest bardzo przystępna.

2

Jak uruchomić nową goroutine w Go?

Odpowiedź

Słowo kluczowe go, po którym następuje wywołanie funkcji, uruchamia nową goroutine. Na przykład 'go myFunction()' lub 'go func() { ... }()' dla funkcji anonimowej. Goroutine wykonuje się natychmiast równolegle z kodem wywołującym. Uwaga: funkcja main nie czeka automatycznie na zakończenie uruchomionych goroutines.

3

Jaka jest główna różnica między goroutine a wątkiem OS?

Odpowiedź

Goroutine zużywa około 2 KB początkowego stosu, podczas gdy wątek OS zazwyczaj wymaga 1-2 MB. Runtime Go zarządza schedulingiem goroutines w przestrzeni użytkownika (M:N scheduling), multipleksując tysiące goroutines na kilku wątkach OS. Pozwala to tworzyć miliony goroutines bez przeciążania systemu, w przeciwieństwie do wątków OS, które są ograniczone przez zasoby.

4

Co się stanie, jeśli program główny zakończy się przed ukończeniem goroutine?

5

W jaki sposób runtime Go zarządza wykonywaniem goroutines?

+17 pytań z rozmów

Opanuj Go na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo