DEV Community

Nozibul Islam
Nozibul Islam

Posted on

গোরুটিন (Goroutine) কী?

গোরুটিন (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!")         // মেইন থ্রেড
}

Enter fullscreen mode Exit fullscreen mode

Output:
মেইন থ্রেড এবং গোরুটিন থেকে মেসেজ আলাদাভাবে প্রিন্ট হবে। তারা একে অপরকে ব্লক করবে না।

গোরুটিন কেন গুরুত্বপূর্ণ?

Concurrency সহজ করে:

  • গোরুটিনের মাধ্যমে আপনি একাধিক কাজকে আলাদা আলাদা ভাবে চালাতে পারবেন।

দ্রুত ও কার্যকরী:

  • গোরুটিন লাইটওয়েট এবং থ্রেড ম্যানেজমেন্টের ওভারহেড কম থাকে।

নেটওয়ার্ক ও ডেটা প্রসেসিং:

  • নেটওয়ার্ক রিকোয়েস্ট, ডেটাবেস অ্যাক্সেস, বা ব্যাকগ্রাউন্ড প্রসেস সহজে করা যায়।

সারাংশ:
গোরুটিন হলো Go-তে একসাথে অনেক কাজ করার জন্য একটি সহজ, দ্রুত, এবং লাইটওয়েট উপায়।

Top comments (0)