Multithreading in Java

Chapter 12: Multithreading in Java

Chapter 12: Multithreading in Java

Multithreading is one of Java's powerful features, allowing concurrent execution of two or more parts of a program for maximum utilization of CPU. Each part of such a program is called a thread.

🔄 1. What is a Thread?

A thread is a lightweight process. It's a path of execution within a program. Java supports multithreaded programming using built-in Thread class and Runnable interface.

🛠️ 2. Creating Threads in Java

Method 1: By extending Thread class

class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running...");
    }
}

public class TestThread {
    public static void main(String args[]) {
        MyThread t1 = new MyThread();
        t1.start();
    }
}

Method 2: By implementing Runnable interface

class MyRunnable implements Runnable {
    public void run() {
        System.out.println("Runnable thread running...");
    }
}

public class TestRunnable {
    public static void main(String args[]) {
        Thread t1 = new Thread(new MyRunnable());
        t1.start();
    }
}

🔁 3. Thread Life Cycle

  • New: Thread instance created
  • Runnable: Thread is ready to run
  • Running: Thread is currently executing
  • Blocked/Waiting: Thread is waiting for a monitor lock
  • Terminated: Thread has exited

⚙️ 4. Thread Methods

  • start() – starts thread
  • run() – entry point of thread
  • sleep() – pauses thread temporarily
  • join() – waits for thread to die
  • isAlive() – checks if thread is alive

🔒 5. Synchronization

When multiple threads access the same resource, synchronization ensures one thread accesses the resource at a time.

class Table {
    synchronized void printTable(int n) {
        for (int i = 1; i <= 5; i++) {
            System.out.println(n * i);
        }
    }
}

🎯 6. Benefits of Multithreading

  • Efficient CPU utilization
  • Concurrent execution
  • Improved performance
  • Responsive GUI applications

❓ FAQs with Answers

Q1: What is multithreading in Java?

A: It is a Java feature that allows multiple threads to run concurrently, helping in efficient CPU usage and improved application performance.

Q2: How do you create a thread in Java?

A: By extending the Thread class or by implementing the Runnable interface.

Q3: What are the stages in a thread’s life cycle?

A: New, Runnable, Running, Blocked/Waiting, Terminated.

Q4: Why is synchronization important?

A: To prevent thread interference and consistency issues when multiple threads access shared resources.

Q5: What is the difference between start() and run() method?

A: start() creates a new thread and calls run() internally. Directly calling run() doesn’t start a new thread.

Q6: Can we create a thread without implementing Runnable?

A: Yes, by extending the Thread class.

Q7: What is the use of join() method?

A: It pauses the execution of the current thread until the specified thread finishes execution.

Q8: What happens if we call start() method twice on the same thread?

A: It throws IllegalThreadStateException.

📘 Summary

  • Multithreading improves performance through parallel execution.
  • Java provides Thread class and Runnable interface for thread creation.
  • Synchronization is key to safe thread handling.

📌 Related Links: Complete Java Course

Comments

Popular posts from this blog

Best AI Tools for Students and Professionals in 2025 | Boost Learning & Productivity

Introduction to Java

Top AI Tools for Content Creators: Bloggers, YouTubers & Writers (2025)