9/23/2015 Multithreading in Java javatpoint
Content Menu ▼
Multithreading in Java
Multithreading in java is a process of executing multiple threads
simultaneously.
Thread is basically a lightweight subprocess, a smallest unit of
processing. Multiprocessing and multithreading, both are used to
achieve multitasking.
But we use multithreading than multiprocessing because threads
share a common memory area. They don't allocate separate memory
area so saves memory, and contextswitching between the threads
takes less time than process.
Java Multithreading is mostly used in games, animation etc.
Advantage of Java Multithreading
1) It doesn't block the user because threads are independent and
you can perform multiple operations at same time.
2) You can perform many operations together so it saves time.
3) Threads are independent so it doesn't affect other threads if
exception occur in a single thread.
Multitasking
Multitasking is a process of executing multiple tasks simultaneously.
We use multitasking to utilize the CPU. Multitasking can be achieved
by two ways:
Processbased Multitasking(Multiprocessing)
Threadbased Multitasking(Multithreading)
1) Processbased Multitasking (Multiprocessing)
Each process have its own address in memory i.e. each
http://www.javatpoint.com/multithreadinginjava 1/4
9/23/2015 Multithreading in Java javatpoint
process allocates separate memory area.
Process is heavyweight.
Cost of communication between the process is high.
Switching from one process to another require some time for
saving and loading registers, memory maps, updating lists
etc.
2) Threadbased Multitasking (Multithreading)
Threads share the same address space.
Thread is lightweight.
Cost of communication between the thread is low.
Note: At least one process is required for each thread.
What is Thread in java
A thread is a lightweight sub process, a smallest unit of processing.
It is a separate path of execution.
Threads are independent, if there occurs exception in one thread, it
doesn't affect other threads. It shares a common memory area.
http://www.javatpoint.com/multithreadinginjava 2/4
9/23/2015 Multithreading in Java javatpoint
As shown in the above figure, thread is executed inside the process.
There is contextswitching between the threads. There can be
multiple processes inside the OS and one process can have multiple
threads.
Note: At a time one thread is executed only.
Do You Know
How to perform two tasks by two threads ?
How to perform multithreading by annonymous class ?
What is the Thread Schedular and what is the difference
between preemptive scheduling and time slicing ?
What happens if we start a thread twice ?
What happens if we call the run() method instead of start()
method ?
What is the purpose of join method ?
Why JVM terminates the daemon thread if there is no user
threads remaining ?
What is the shutdown hook?
What is garbage collection ?
What is the purpose of finalize() method ?
What does gc() method ?
What is synchronization and why use synchronization ?
What is the difference between synchronized method and
synchronized block ?
What are the two ways to perform static synchronization ?
What is deadlock and when it can occur ?
What is interthreadcommunication or cooperation ?
What we will learn in Multithreading
Multithreading
Life Cycle of a Thread
Two ways to create a Thread
How to perform multiple tasks by multiple threads
Thread Schedular
Sleeping a thread
Can we start a thread twice ?
http://www.javatpoint.com/multithreadinginjava 3/4
9/23/2015 Multithreading in Java javatpoint
What happens if we call the run() method instead of start()
method ?
Joining a thread
Naming a thread
Priority of a thread
Daemon Thread
ShutdownHook
Garbage collection
Synchronization with synchronized method
Synchronized block
Static synchronization
Deadlock
Interthread communication
← prev next →
http://www.javatpoint.com/multithreadinginjava 4/4