Multithreading in c का एक विशिष्ट रूप है और एक मल्टीटास्किंग वह विशेषता है जो आपके कंप्यूटर को दो या अधिक कार्यक्रमों को समवर्ती रूप से चलाने की अनुमति देती है।
सामान्य तौर पर, मल्टीटास्किंग दो प्रकार के होते हैं: प्रक्रिया-आधारित और थ्रेड-आधारित।
प्रक्रिया-आधारित मल्टीटास्किंग कार्यक्रमों के समवर्ती निष्पादन को संभालती है।
थ्रेड-आधारित मल्टीटास्किंग एक ही कार्यक्रम के टुकड़ों के समवर्ती निष्पादन से संबंधित है।
एक बहुस्तरीय कार्यक्रम में दो या अधिक भाग होते हैं जो समवर्ती रूप से चल सकते हैं।
इस तरह के एक कार्यक्रम के प्रत्येक भाग को एक थ्रेड कहा जाता है, और प्रत्येक थ्रेड निष्पादन के एक अलग मार्ग को परिभाषित करता है।
Multithreaded in c in Hindi
Multithreaded in c in hindi :-अनुप्रयोगों के लिए कोई अंतर्निहित समर्थन नहीं है। इसके बजाय, यह पूरी तरह से इस सुविधा को प्रदान करने के लिए ऑपरेटिंग सिस्टम पर निर्भर करता है।
यह ट्यूटोरियल मानता है कि आप लिनक्स ओएस पर काम कर रहे हैं और हम POSIX का उपयोग करके Multithreaded सी प्रोग्राम लिखने जा रहे हैं। POSIX थ्रेड्स या Pthreads API प्रदान करता है जो कई Unix-जैसे POSIX सिस्टम जैसे FreeBSD, NetBSD, GNU / Linux, Mac OS X और Solaris पर उपलब्ध हैं।
POSIX थ्रेड बनाने के लिए निम्न दिनचर्या का उपयोग किया जाता है -
#include <pthread.h>
pthread_create (thread, attr, start_routine, arg)
यहाँ, pthread_create एक नया धागा बनाता है और इसे निष्पादन योग्य बनाता है।
इस दिनचर्या को आपके कोड के भीतर कहीं से भी कई बार कहा जा सकता है। यहाँ मापदंडों का वर्णन है।
![]() |
Multithreading in c |
एक प्रक्रिया द्वारा बनाए जा सकने वाले थ्रेड्स की अधिकतम संख्या कार्यान्वयन पर निर्भर होती है।
एक बार बनाने के बाद, थ्रेड्स सहकर्मी होते हैं, और अन्य धागे बना सकते हैं। धागे के बीच कोई अंतर्निहित पदानुक्रम या निर्भरता नहीं है।
Know how to Terminating Threads in c in Hindi
निम्नलिखित दिनचर्या है जो हम एक POSIX थ्रेड को समाप्त करने के लिए उपयोग करते हैं -
#include <pthread.h>
pthread_exit (status)
यहाँ pthread_exit का उपयोग स्पष्ट रूप से एक धागे से बाहर निकलने के लिए किया जाता है। आमतौर पर, pthread_exit () रूटीन को थ्रेड के बाद अपना काम पूरा करने के बाद कहा जाता है और अब अस्तित्व में नहीं है।
यदि main() उसके द्वारा बनाए गए थ्रेड्स से पहले खत्म हो जाता है, और pthread_exit () के साथ बाहर निकल जाता है, तो अन्य थ्रेड निष्पादित होते रहेंगे।
अन्यथा, वे स्वचालित रूप से समाप्त हो जाएंगे जब main() खत्म हो जाएगा।
Example for multithreading in c in Hindi
#include <iostream> #include <cstdlib> #include <pthread.h>using namespace std; #define NUM_THREADS 5 void *PrintHello(void *threadid) { long tid; tid = (long)threadid; printf("Hello World! Thread ID, %d\n", tid); pthread_exit(NULL); } int main () { pthread_t threads[NUM_THREADS]; int rc; int i; for( i = 0; i < NUM_THREADS; i++ ) { cout << "main() : creating thread, " << i << endl; rc = pthread_create(&threads[i], NULL, PrintHello, (void *)i); if (rc) { printf("Error:unable to create thread, %d\n", rc); exit(-1); } } pthread_exit(NULL); }