Java in Hindi Multithreading

Multithreading 


Java language multi-threading को support करती है इसका मतलब आप किसी program के एक से अधिक part को एक ही time पर एक साथ perform करा सकते है program के उस part को thread कहते है और इस तरह की programming को multi-threaded programming कहते है।

Advantages of Java Multithreading -

1)  Multithreading use कर के आप different operation एक ही समय में perform करा  सकते है।
2) Thread independent होती है जिस से other thread पर कोई effect नही पड़ता है।
3) Multithreading का use  कर के आप एक साथ कई operation perform करा सकते है जिससे time की बचत होती है।

Multi-threaded program में program के एक से अधिक part एक साथ run होते  है, हर एक part अलग operation perform करता है।

Life Cycle of a Thread -

Thread की अपनी एक life cycle होती है, Thread अपनी life cycle में अलग-अलग stages से गुजरती है जैसे -

New - New state से thread अपनी life cycle start करती है, और इसी state में रहती है जब तक program thread को start नहीं करता।

Runnable - जब program thread को start करता है तो thread Runnable state में आ जाती है और इस state में thread अपनी task को execute करती है।

Waiting - इस state में thread किसी दूसरी thread के task execute कराने का wait करती है और waiting state में ही रहती है जब तक दूसरी thread task complete हो जाने का signal नहीं दे देती।

Timed waiting - इस state में thread एक specified time-interval के लिए ही enter होती है जैसे ही वह time-interval खत्म होता है thread time-waited state से निकल जाती है।

Terminated - जब thread अपनी task complete कर लेती है तो वह terminate हो जाती है।

Thread को program में दो तरह से create किया जा सकता है -

1) Implementing a Runnable Interface -

Thread को create करने का सबसे easy तरीका यह है कि आप को पहले कोई class create करनी पड़ेगी और उस class में Runnable interface को implement करना पड़ेगा। Runnable interface में एक ही method - public void run() होता है, यह thread का entry point होता है, आप को को जो भी statement execute करानी है उस statement block को run() method के अंदर लिखना पड़ेगा।

How to launch a new thread -

Thread को launch करने के लिए पहले आप को Runnable object create करना होगा और उसके बाद एक Thread class का object create करना पड़ेगा फिर new Runnable object को thread constructor को pass करना होगा। अब thread को run कराने के लिए start() method को call करना होगा, जिससे thread runnable state में आ जाएगी।
Example -

Program :


public class ThreadExample implements Runnable {
public void run() {
System.out.println("Thread is Running.........");
}
public static void main(String[] args)
{
Runnable runObj=new ThreadExample();
Thread   threadObj=new Thread(runObj);
threadObj.start();
}
}

Output:
Thread is Running.........

इस Example में thread को create कर के दिखाया गया है, पहले class में Runnable interface को implement किया फिर Runnable object 'runobj' बनाया और उसके बाद thread class का object 'threadobj' create किया गया है और constructor में object 'runobj' को pass किया गया है। फिर thread को रन करने के लिए start() method को call की गयी है, जिससे thread runnable state में आ जाती है।

2) Extending a Thread Class -

Thread को create करने का दूसरा तरीका यह है की आप Thread class को extend करना पड़ेगा और run() method को override करना पड़ेगा। जो भी task execute करनी होती है उसे run() method के अंदर लिखा जाता है। उसके बाद thread को run कराने के लिए आप को thread class का object create कर start() method को कॉल करनी होगी जिस से thread runnable state में आ जाएगी

Example -

Program :


public class ThreadExample extends Thread {
public void run() {
System.out.println("Thread is running.......");
}
public static void main(String [] args) {
ThreadExample threadObj =new ThreadExample();
threadObj.start();
}
}

Output:
Thread is running.......

इस program में thread class को extend कर run() method को override किया गया है और thread object create कर start() method को call की गयी है, जिससे thread run हो जाती है।