InfosysJavaMedium
Explain the concept of multithreading in Java
JavaMultithreadingConcurrencyThreads
Question
What is multithreading in Java? Explain thread lifecycle and synchronization.
Answer
Multithreading is the ability of a CPU to execute multiple threads concurrently.
Thread Lifecycle:
1. New: Thread is created but not started
2. Runnable: Thread is ready to run
3. Running: Thread is executing
4. Blocked/Waiting: Thread is waiting for a resource
5. Terminated: Thread execution is complete
Creating Threads:
// Method 1: Extending Thread class
class MyThread extends Thread {
public void run() {
System.out.println("Thread running");
}
}
// Method 2: Implementing Runnable interface
class MyRunnable implements Runnable {
public void run() {
System.out.println("Thread running");
}
}
Synchronization:
Used to prevent thread interference and memory consistency errors.
synchronized void method() {
// Thread-safe code
}
synchronized (object) {
// Synchronized block
}
Explanation
Multithreading allows programs to perform multiple tasks simultaneously, improving performance and responsiveness. However, it requires careful handling of shared resources to avoid race conditions and deadlocks.