[Go] Is It Okay to Run 100 Million Goroutines?

Goroutines are one of the key advantages of the Go language, known for being lightweight—even when spawning hundreds of thousands or more. However, what happens if these goroutines remain in a parked state for extended periods? This article explains the operational principles of goroutine parking and delves into the internals of Go’s GMP runtime model. It explores the system load and performance impact when many goroutines are inactive, and introduces practical strategies to detect and prevent such issues.

May 20, 2025 · 12 min · 2346 words · dingyu

[Go] Profiling Worker Pool vs. Async Processing

Is it better to distribute tasks across multiple workers or handle each task asynchronously? Let’s find out through performance profiling.

October 27, 2024 · 3 min · 521 words · dingyu