C++ multithreading in hindi-C++ मुल्तिथ्रेअदिन्ग क्या है?

हेल्लो दोस्तों ! आज के इस पोस्ट में आपको c++ multithreading in hindi के बारे में आपको बताया जा रहा है की क्या होता है कैसे काम करता है तो चलिए शुरू करते है

C++ multithreading का परिचय

  • एक thread को किसी process में stream होती है जिससे कोई task को perform होता है किसी process में एक या एक से अधिक threads हो सकती है इसलिए हर thread एक independent task को represent करती है
  • ऐसी ही process जिनमे सिर्फ एक ही thread होती है single threaded process कहलाती है ऐसी में processes से एक साथ एक से अधिक tasks को perform नहीं किये जा सकते है example के लिए calculator एक single threaded process होती है जो एक calculator में आप एक साथ कई अलग अलग calculations को perform नहीं कर सकते है
  • जिन processes में आप एक से अधिक threads होती है वे multithreaded processes कहलाती है multithreaded processes में अलग अलग थ्रेड्स के द्वारा ही एक साथ कई tasks को perform किये जा सकते है
  • example के लिए यदि browser एक multithreaded process है तो उसमे open किया गया हर tab एक thread(या stream) को represent करता है उन tabs के द्वारा ही एक साथ अलग अलग webpages को देखा जा सकता है
  • जब कई threads को एक साथ ही कार्य करती है तो वह process multithreading कहलाती है जब आप कोई c++ के program को create करते है तो वह एक single threaded program होता है आपके प्रोग्राम(program) main() method एक single thread को represent करता है
  • लेकिन यदि आप अपने program को multithreaded को बना सकते है और एक साथ कई tasks को perform कर सकते है
  • c++ में complete multithreading को support c++ के version 11 में add किया गया था जो इससे पूर्व में multithreading को implement करने के लिए ही आपको c language में available को POSIX threads(pthreads) library का प्रयोग किया जाता है

हलाकि आप POSIX threads को library के द्वारा ही multithreading के लिए जरुरी thread  class और functions को available है जिन्हें आप अपने program में कही भी प्रयोग कर सकते है

implementing multithreading in C++

किसी भी c++ program में multithreading को implement करने के लिए आप सबसे पूर्व आप <thread.h> को header file को ही अपने program में include करते है जिसका आपको इसका syntax निचे दिया जा रहा है

#include<thread>
OR
#include<thread.h>

केवल <thread.h> को header file को include करने के बाद ही आप अपने program को threads को create कर सकते है

creating threads

उपर बताये गए <thread.h> में header file में available को thread class एक single को thread को represent करती है जो एक thread को create करने के लिय ही आपको बस thread class का object को create करना होता है

इस प्रकार से आप thread class के कई objects को create करके कई thread को create कर सकते है जिसका आपको इसका syntax निचे दिया जा रहा है

thread thread-object-name(callable-code);

जैसे की आप उपर दिए गए syntax में आप देख सकते है की thread class का object को create करते समय callable code को pass किया जाता है callable के code वह code होता है जो की thread को launch होने पर ही execute किया जाता है

callable code को आपको निचे इसका code में से कोई एक हो सकता है

  • function-callable code के रूप में आप किसी function का नाम को pass कर सकते है वह function thread को launch होने पर ही execute हो जाता है
  • class object –callable code के रूप में किसी class का object को भी pass किया जा सकता है ऐसे करने के लिए आपको उस class में () operator को override करते समय ही आप जो code को डिफाइन करते है वाही ही code thread के launch होने पर call होता है
  • lambda expression-callable code के रूप में lambda expression को भी pass किया जा सकता है lambda expression एक unnamed function ही तो होता है lambda function के द्वारा ही आप thread को create करते सामय ही उसका callable code भी डिफाइन कर पाते है

यदि callable code को किसी प्रकार का argument को accept करता है तो argument को आप callable code के बाद ही comma से separate करके ही लिखते है जिसका आपको इसका syntax  निचे दिया जा रहा है

thread thread-object-name(callable-code,arg1,arg2,.....argN);

हलाकि आप lambda exprssion के case को इस प्रकार से भी argument नहीं pass किये जाते है

joining threads

thread object को create करने के बाद आप thread को main thread के साथ ही attach(join) किया जाता है तो यदि thread को main thread के साथ ही join नहीं किए जाए तो आपकी main thread का execution को ही पहले complete हो जायेगा और यदि thread के objects के द्वारा ही डिफाइन की गयी thread को execute नहीं हो पायेगी

किसी भी thread को main thread के साथ ही join करने के लिए join() methods का प्रयोग किया जाता है जिसका आपको इसका syntax निचे generate होता है

thread-object-name.join();

एक बार जब भी किसी thread को main thread के साथ ही join कर दिया जाता है तो main thread अपना execution को complete करके ही terminate होने से पहले ही उस thread के लीये wait करती है

detaching threads

जिस प्रकार से thread को attach(join) किया जाता है ठीक उसी प्रकार से उन्हें detach भी किया जाता है इसके लिए detach() function का प्रयोग किए जाता है इस function को आप thread object के द्वारा call किया जाता है

यह function को किसी thread को उसकी parent thread से detach करता है तो जिसका आपको इसका general syntax आपको निचे दिय जा रही है

thread-object-name.detach();

एक thread को detach होने के बाढ़ ही joinable बन जाती है जो उसे दूसरी threads के साथ ही attach किया जाता है

example of c++ multithreading

c++ में multithreading के प्रयोग के लिए आपको इसका example निचे दिया जा रहा है

#include<iostream>
#include<thread>
Using namespace std;
Void myFunc()
{
        Cout<<”T1 thread executed”<<end!;
}
Int main()
{
       Thread t1(myFunc);
        t1.join();
        cout<<”Main thread executed”<<end!;
        return 0;
}

उपर दिए गए example में आपको निचे दिया जा रहा आउटपुट generate होता है

T1 thread execute
Main thread executed
c++ multithreading in hindi

reference-https://www.geeksforgeeks.org/multithreading-in-cpp/

निवेदन:-आप सभी छात्र –छात्रों से निवेदन है की अगर आपको ये Topic(c++ multithreading in hindi) या post अच्छा लगा हो तो कृपया आप इस वेबसाइट के बारे में अपने दोस्तों को जरुर बताये और -अगर कोई topic(c++ multithreading in hindi) से संबधित प्रश्न हो तो कमेंट्स(comments) आपके लिए ही बना है और किसी Subject(c++ multithreading in hindi) के लेकर भी कोई प्रश्न हो तो कमेंट करे “आपका comments हमारे लिए बहुमूल्य है “   *_*धन्यवाद

Leave a Comment