Goroutine — lightweight concurrency primitive managed by Go runtime. Thread — OS-level execution unit with dedicated kernel resources.
Memory efficiency:
Scheduling:
runtime.Gosched()).Creation cost:
1// Efficient concurrent processing2func processItems(items []Item) []Result {3 results := make([]Result, len(items))4 var wg sync.WaitGroup56 for i, item := range items {7 wg.Add(1)8 go func(i int, item Item) {9 defer wg.Done()10 results[i] = process(item)11 }(i, item)12 }1314 wg.Wait()15 return results16}
When to use goroutines:
When to use threads:
Common mistakes:
runtime.LockOSThread() unnecessarily.