What is multithreading?

Multithreading is a Java feature that allows multiple threads to execute concurrently within a single application. It enables a program to perform several tasks simultaneously, improving responsiveness and making better use of system resources.

Key Points: • A thread is the smallest unit of execution within a process. • Multithreading allows multiple tasks to run concurrently in the same application. • Threads share the same memory space, making communication between them efficient. • It improves CPU utilization and application performance. • Java supports multithreading through the Thread class, Runnable interface, and Executor Framework. • Proper synchronization is required when multiple threads access shared resources.

Example: In an online banking application, one thread can process transactions while another sends notifications and a third generates reports, allowing all tasks to run concurrently.

Code Example:

class MyTask implements Runnable {

    @Override
    public void run() {
        System.out.println("Thread is executing...");
    }
}

public class Demo {

    public static void main(String[] args) {

        Thread thread = new Thread(new MyTask());
        thread.start();
    }
}

Interview Tip: A concise interview answer is:

"Multithreading is the ability to execute multiple threads concurrently within a single program. It improves application performance, responsiveness, and CPU utilization by allowing different tasks to run simultaneously while sharing the same process resources."