গোরুটিন (Goroutine) কী?
গোরুটিন (Goroutine) হলো Go প্রোগ্রামিং ভাষার লাইটওয়েট থ্রেড। এটি Go-তে Concurrency বা একাধিক কাজ একসঙ্গে চালানোর জন্য ব্যবহৃত হয়।
গোরুটিনের বৈশিষ্ট্য:
লাইটওয়েট:
- গোরুটিন সাধারণ থ্রেডের চেয়ে কম মেমোরি ব্যবহার করে।
- একাধিক গোরুটিন চালানো যায়, কারণ প্রতিটির জন্য স্বতন্ত্র থ্রেড তৈরি হয় না।
স্বতন্ত্র কার্যকলাপ:
- গোরুটিন স্বাধীনভাবে কাজ করে।
- প্রতিটি গোরুটিন নিজের স্ট্যাক নিয়ে কাজ করে এবং প্রয়োজন অনুযায়ী এটি বড় হয়।
সহজে তৈরি করা যায়:
- go কীওয়ার্ড দিয়ে একটি ফাংশনকে গোরুটিন হিসেবে চালানো যায়।
Concurrency সুবিধা:
- একাধিক গোরুটিন একই সময়ে কাজ করতে পারে, যার ফলে কোড আরও দ্রুত চলে।
কাজের ধরন:
গোরুটিন দিয়ে আপনি মাল্টি-টাস্কিং করতে পারবেন, অর্থাৎ একই সময়ে একাধিক কাজ করাতে পারবেন।
যেমন:
- ডেটা প্রসেসিং।
- নেটওয়ার্ক রিকোয়েস্ট।
- বড় বড় কম্পিউটেশনাল কাজ।
উদাহরণ:
package main
import (
"fmt"
"time"
)
func printMessage(message string) {
for i := 0; i < 5; i++ {
fmt.Println(message)
time.Sleep(500 * time.Millisecond) // 500ms অপেক্ষা
}
}
func main() {
go printMessage("Hello from Goroutine!") // গোরুটিন
printMessage("Hello from Main!") // মেইন থ্রেড
}
Output:
মেইন থ্রেড এবং গোরুটিন থেকে মেসেজ আলাদাভাবে প্রিন্ট হবে। তারা একে অপরকে ব্লক করবে না।
গোরুটিন কেন গুরুত্বপূর্ণ?
Concurrency সহজ করে:
- গোরুটিনের মাধ্যমে আপনি একাধিক কাজকে আলাদা আলাদা ভাবে চালাতে পারবেন।
দ্রুত ও কার্যকরী:
- গোরুটিন লাইটওয়েট এবং থ্রেড ম্যানেজমেন্টের ওভারহেড কম থাকে।
নেটওয়ার্ক ও ডেটা প্রসেসিং:
- নেটওয়ার্ক রিকোয়েস্ট, ডেটাবেস অ্যাক্সেস, বা ব্যাকগ্রাউন্ড প্রসেস সহজে করা যায়।
সারাংশ:
গোরুটিন হলো Go-তে একসাথে অনেক কাজ করার জন্য একটি সহজ, দ্রুত, এবং লাইটওয়েট উপায়।
Source link
lol