After go func(): Goroutines Through a Beginner’s Eye

Room 2 16:00 - 16:20

Have you ever wondered how Goroutines actually run behind the scenes? Why your concurrent Go code works… or sometimes doesn’t? - Background When I first started writing concurrent programs in Go, I was amazed by how simple it was to launch a Goroutine—just one keyword! But soon I found myself asking: “What really happens after I write go func()?” This talk is a beginner-friendly dive into how Go schedules Goroutines using its lightweight runtime scheduler. We’ll explore how Goroutines are mapped onto OS threads, what M:N scheduling really means, how Go handles preemption, and why your code may behave differently than expected under load. As someone who transitioned from traditional programming models to Go’s concurrency model, I’ll share my personal learning journey—including moments of confusion and clarity—and how understanding Go’s scheduler helped me write better, more efficient code. This session is especially helpful for those who have used Goroutines without really knowing what’s under the hood—and want to take that first step toward understanding concurrency the Go way. - Expected Effect on Audience Attendees especially beginners will leave with: • A clear mental model of how Go schedules Goroutines • An understanding of key concepts like G, M, P, and work-stealing • Tips for writing more predictable and efficient concurrent Go code • Curiosity to explore Go’s runtime deeper with tools like GODEBUG and scheduler traces This talk will definitely bridges the gap between “I can write Goroutines” and “I understand how they run.”