Goroutine واحد اجرای سبک در Go است که Runtime آن را روی Threadهای سیستم‌عامل زمان‌بندی می‌کند.

از مفهوم تا اجرا

برای پردازش هم‌زمان درخواست‌های HTTP یا مصرف پیام می‌توان Goroutine ساخت.

Goroutine خودکار به معنی نبود ریس کاندیشن یا کنترل نامحدود تعداد کارها نیست.

اجرای تابع به شکل گوروتین

go func() {
    processOrder(orderID)
}()

ساخت گوروتین بسیار سبک‌تر از ترد سیستم‌عامل است اما بدون مدیریت Lifecycle می‌تواند نشت منابع ایجاد کند. برای هماهنگی از Channel، Context یا WaitGroup استفاده می‌شود.