Monday, April 15, 2024
What is Multithreading in Java

What is Multithreading in Java?

Java में Multithreading CPU के maximum utilization के लिए एक साथ दो या अधिक threads execute करने की एक process है। Multithreaded applications दो या अधिक threads concurrently रूप से execute करते हैं। इसलिए, इसे Java में Concurrency के रूप में भी जाना जाता है। प्रत्येक thread एक दूसरे के parallel चलता है। Mulitple threads अलग memory area allocate नहीं करते हैं, इसलिए वे memory को बचाते हैं। साथ ही, threads के बीच context switch करने में कम समय लगता है।

Advantages of Multithread:

  • Thread independent होने के कारण users block नहीं होते हैं, और हम कई बार multiple operations perform कर सकते हैं|
  • जैसे कि thread independent होते हैं, यदि एक thread को पूरा करता है तो अन्य thread affected नहीं होंगे।

Thread Life Cycle in Java:

There are various stages of life cycle of thread as shown in above diagram:

  1. New
  2. Runnable
  3. Running
  4. Waiting
  5. Dead


  1. New: इस phase में, “Thread class” का use करके thread बनाया जाता है। यह इस state में रहता है जब तक program thread शुरू नहीं करता है। इसे born thread के रूप में भी जाना जाता है।
  2. Runnable: इस page में, thread का example एक start method के साथ दिया गया है। execution को finish करने के लिए thread control को scheduler को दिया जाता है। यह scheduler पर depend करता है, कि thread को चलाना है या नहीं।
  3. Running: जब thread execution करना शुरू कर देता है, तो state को “running” state में बदल दिया जाता है। scheduler thread pool से एक thread का slection करता है, और यह application में execution करना शुरू कर देता है।
  4. Waiting: यह वह state है जब किसी thread को wait करनी होती है। चूंकि application में कई thread चल रहे हैं, threads के बीच synchronization की need है। इसलिए, एक thread का wait करना पड़ता है, जब तक कि दूसरे thread को execute नहीं किया जाता है। इसलिए, इस state को waiting state कहा जाता है।
  5. Dead: यह वह state है जब thread terminate हो जाता है। thread running state में है और जैसे ही यह processing complete हुआ यह “dead state” में है।

Java Multithreading Example:
package demotest;
public class GuruThread1 implements Runnable{

public static void main(String[] args) {
Thread CodeashThread1 = new Thread(“Codeash1”);
Thread CodeashThread2 = new Thread(“Codeash2”);
System.out.println(“Thread names are following:”);
public void run() {


Tags: , , , , , ,
My name is Yash Pogra and I am the chief blogger at Codeash and where I like to share my internet/tech experience with my online readers on this website. I have been a webmaster from 2015 which is when I had registered my first company by the name Codeash. I have ventured into different online businesses like offering SEO Services, website development services.

Related Article

No Related Article


govind 02/04/2021 at 4:49 pm

very useful content about method overriding
thank you sir

Magas 06/04/2021 at 10:25 am

Thank you sir, this is very very well explained and precious information you provided.

Chandan Majhi 11/05/2022 at 12:31 am

It is very good and also understandable page
Thank you so much sir

Leave a Comment