
Podstawy goroutines
Goroutines, słowo kluczowe go, sync.WaitGroup, runtime.GOMAXPROCS, wycieki goroutine
1Czym jest goroutine w Go?
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.
2Jak uruchomić nową goroutine w Go?
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.
3Jaka jest główna różnica między goroutine a wątkiem OS?
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.
Co się stanie, jeśli program główny zakończy się przed ukończeniem goroutine?
W jaki sposób runtime Go zarządza wykonywaniem goroutines?
+17 pytań z rozmów
Inne tematy rekrutacyjne Go
Podstawy Go
Struktury danych w Go
Interfejsy w Go
Obsługa błędów
Channels
Go Modules
Serwer HTTP
Klient HTTP
Kodowanie JSON
Database/SQL
Pakiet context
Testing
Wzorce współbieżności
Prymitywy synchronizacji
Frameworki webowe Go
Projektowanie API REST
gRPC
Reflection
Zarządzanie pamięcią
Optymalizacja wydajności
Generics
Go Design Patterns
Microservices
Bezpieczeństwo i uwierzytelnianie
Docker & Containerization
Kubernetes Basics
Zaawansowany Go
Tworzenie CLI
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