Multithreading in Java

471 views
optmiize_your_resume_1

What is Multithreading in Java?

Multithreading in Java is a process of executing two or more parts of a program, simultaneously to maximum utilization of CPU.

  • Each part of such a program is called a thread. So, threads are light-weight processes within a process.
  • Multithreaded applications execute two or more threads run concurrently. Hence, it is also known as Concurrency in Java.
  • Each thread runs parallel to each other. Multiple threads don’t allocate separate memory areas, hence they save memory. Also, context switching between threads takes less time.
  • Java Multithreading is mostly used in animation, games, etc.

To understand this better, think of you are playing a car racing game ,and each player is a thread of same game.

Advantages of multithread

  1. The users are not blocked because threads are independent, and we can perform multiple operations at times
  2. Threads are independent, so it doesn’t affect other threads if an exception occurs in a single thread.
  3. You can perform many operations together, so it saves time.

Example of Multithread

class MultithreadingExample implements Runnable { public void run() { try { // Displaying the thread that is running System.out.println( "Thread " + Thread.currentThread().getId() + " is running"); } catch (Exception e) { // Throwing an exception System.out.println("Exception is caught"); } } } public class TestThread { public static void main(String[] args) { int n = 6; // Number of threads for (int i = 0; i < n; i++) { Thread object = new Thread(new MultithreadingExample()); object.start(); } } }
Code language: Java (java)

Output

Thread 21 is running 
Thread 22 is running 
Thread 23 is running 
Thread 24 is running 
Thread 25 is running 
Thread 26 is running

What is Multitasking?

Multitasking is a process of executing multiple tasks simultaneously. We use multitasking to utilize the CPU. Multitasking can be achieved in two ways:

  • Process-based Multitasking (Multiprocessing)
  • Thread-based Multitasking (Multithreading)

1) Process-based Multitasking (Multiprocessing)

  • Each process has an address in memory. In other words, each process allocates a separate memory area.
  • A process is heavyweight.
  • Cost of communication between the process is high.
  • Switching from one process to another requires some time for saving and loading registers, memory maps, updating lists, etc.

2) Thread-based Multitasking (Multithreading)

  • Threads share the same address space.
  • A thread is lightweight.
  • The cost of communication between the thread is low.
20%off for Ink 280 281

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More