DEV Community

Nozibul Islam
Nozibul Islam

Posted on

4 4 4 4 4

গোরুটিন (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-তে একসাথে অনেক কাজ করার জন্য একটি সহজ, দ্রুত, এবং লাইটওয়েট উপায়।

Billboard image

Imagine monitoring that's actually built for developers

Join Vercel, CrowdStrike, and thousands of other teams that trust Checkly to streamline monitor creation and configuration with Monitoring as Code.

Start Monitoring

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay