همزمانی یکی از مفاهیم کلیدی در توسعه نرم افزار مدرن است، به خصوص زمانی که صحبت از عملکرد برنامه می شود.
در Golang، Goroutines یک ویژگی قدرتمند است که به توسعه دهندگان اجازه می دهد برنامه های همزمان را به سادگی و کارآمد بنویسند. در این مقاله، ما به سراغ Goroutineها میرویم، نحوه عملکرد آنها را درک میکنیم و آخرین بهروزرسانیهای Golang نسخه 1.23 را بررسی میکنیم که ممکن است بر استفاده از Goroutineها در برنامههای دنیای واقعی تأثیر بگذارد.
گوروتین ها چیست؟
Goroutine تابع یا روشی است که همزمان با سایر Goroutine ها در یک فرآیند واحد اجرا می شود. Goroutine بسیار سبک است و می تواند به عنوان یک “رشته” که توسط زمان اجرا Golang مدیریت می شود، نه توسط سیستم عامل مشاهده شود.
برای ایجاد یک گوروتین، به سادگی کلمه کلیدی را اضافه می کنیم go
در مقابل تابع:
func sayHello() {
fmt.Println("Hello, World!")
}
func main() {
go sayHello()
fmt.Println("This will run concurrently with sayHello")
}
وقتی کد بالا را اجرا می کنیم، sayHello
تابع به عنوان یک گوروتین جداگانه اجرا می شود که اجازه می دهد fmt.Println
در main
برای اجرا همزمان با این حال، اگر این کد را اجرا کنیم، ممکن است خروجی آن را نبینیم sayHello
، زیرا ممکن است برنامه قبل از اینکه Goroutine فرصتی برای اجرا پیدا کند کامل شود. این نشان دهنده اهمیت مدیریت چرخه عمر Goroutine است.