• English
  • Go's runtime Package

    The Go runtime package provides a window into and control over the Go runtime environment itself. Unlike os or syscall which interact with the host operating system, runtime manages Go’s internal execution model, memory, and concurrency engine.

    Key Capabilities:

    • Goroutine & Scheduler Control: Manage concurrency directly using runtime.Gosched() (yield processor), runtime.Goexit() (terminate calling goroutine), or runtime.NumGoroutine() (count active goroutines).
    • Memory Management & Garbage Collection: Monitor heap statistics via runtime.ReadMemStats() and manually trigger garbage collection cycles using runtime.GC().
    • Hardware & Parallelism Tuning: Adjust the maximum number of OS threads executing Go code simultaneously via runtime.GOMAXPROCS(n).
    • Diagnostics & Stack Tracing: Inspect call stacks dynamically using runtime.Caller(), runtime.Callers(), or print stack traces via runtime.Stack().

    In short, while os interacts with the outer OS environment, runtime inspects and tunes the inner runtime system running your Go application.