কম্পিউটার টিউটোরিয়াল

জাভাতে Thread এবং Runnable-এর পার্থক্য

জাভাতে থ্রেড তৈরি করার দুটি পদ্ধতি রয়েছে: Thread ক্লাস এক্সটেন্ড করা বা Runnable ইন্টারফেস ইমপ্লিমেন্ট করা।

Thread এবং Runnable-এর তুলনা

ক্রমিক নং বিষয় Thread Runnable
১ বেসিক Thread একটি ক্লাস, থ্রেড তৈরি করতে ব্যবহৃত হয় Runnable একটি ফাংশনাল ইন্টারফেস, থ্রেড তৈরি করতে ব্যবহৃত হয়
২ মেথড start(), run() সহ একাধিক মেথড রয়েছে শুধু run() абস্ট্রাক্ট মেথড রয়েছে
৩ অবজেক্ট অ্যাসোসিয়েশন প্রতিটি থ্রেড আলাদা অবজেক্ট তৈরি করে ও সাথে যুক্ত হয় একাধিক থ্রেড একই অবজেক্ট শেয়ার করতে পারে
৪ মেমোরি অধিক মেমোরি প্রয়োজন কম মেমোরি প্রয়োজন
৫ লিমিটেশন জাভায় মাল্টিপল ইনহেরিট্যান্স নেই, Thread এক্সটেন্ড করলে অন্য ক্লাস এক্সটেন্ড করা যায় না Runnable ইমপ্লিমেন্ট করলে আপনার ক্লাস অন্য ক্লাস এক্সটেন্ড করতে পারে

Runnable উদাহরণ

class RunnableExample implements Runnable {
    public void run() {
        System.out.println("Runnable Implementation দিয়ে থ্রেড চলছে");
    }
    
    public static void main(String args[]) {
        RunnableExample runnable = new RunnableExample();
        Thread t1 = new Thread(runnable);
        t1.start();
    }
}

Thread উদাহরণ

class ThreadExample extends Thread {
    public void run() {
        System.out.println("Thread ক্লাস এক্সটেন্ড করে থ্রেড চলছে");
    }
    
    public static void main(String args[]) {
        ThreadExample t1 = new ThreadExample();
        t1.start();
    }
}

সেরা অনুশীলন

Runnable প্রিয়রিটি পাওয়া যায় কারণ:

  • কম্পোজিশন ওভার ইনহেরিট্যান্স princípio মেনে চলে
  • একই রাননেবল ইনস্ট্যান্স একাধিক থ্রেডে শেয়ার করা যায়
  • ল্যাম্বডা এক্সপ্রেশন ব্যবহার করা যায় (জাভা ৮+) : new Thread(() -> System.out.println("Hello")).start();
  • এক্সিকিউটর ফ্রেমওয়ার্কের সাথে স“知道
  1. জাভাতে Scanner এবং BufferedReader ক্লাসের পার্থক্য

  2. জাভাতে List এবং Set এর পার্থক্য

  3. জাভাতে ইনহেরিটেন্স এবং কম্পোজিশনের পার্থক্য

  4. জাভাতে wait() এবং sleep()-এর পার্থক্য