Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

POSIX थ्रेड लाइब्रेरी (Pthreads)

Pthreads, POSIX मानक (IEEE 1003.1c) को संदर्भित करता है जो थ्रेड निर्माण और सिंक्रनाइज़ेशन के लिए एक API को परिभाषित करता है। यह थ्रेड व्यवहार के लिए विनिर्देश निर्धारित करता है, कार्यान्वयन नहीं। कई सिस्टम Pthreads विनिर्देश को लागू करते हैं; अधिकांश UNIX-प्रकार के सिस्टम हैं जैसे Linux, Mac OS X, Solaris। Windows मूल रूप से Pthreads का समर्थन नहीं करता, लेकिन कुछ तृतीय-पक्ष कार्यान्वयन उपलब्ध हैं।

नीचे दिया गया C प्रोग्राम एक नॉन-नेगेटिव पूर्णांक के योग की गणना के लिए एक अलग थ्रेड में बेसिक Pthreads API को दर्शाता है।

उदाहरण कोड

#include <pthread.h>
#include <stdio.h>

int sum; // थ्रेड(थ्रेड्स) द्वारा साझा डेटा

void *runner(void *param); // थ्रेड इस फंक्शन को कॉल करते हैं

int main(int argc, char *argv[]) {
    pthread_t tid; // थ्रेड पहचानकर्ता
    pthread_attr_t attr; // थ्रेड विशेषताओं का सेट
    if(argc != 2) {
        fprintf(stderr, "usage: a.out \n");
        return -1;
    }
    if(atoi(argv[1]) < 0) {
        fprintf(stderr, "%d must be >= 0\n", atoi(argv[1]));
        return -1;
    }
    pthread_attr_init(&attr); // डिफ़ॉल्ट विशेषताएं प्राप्त करें
    pthread_create(&tid, &attr, runner, argv[1]); // थ्रेड बनाएं
    pthread_join(tid, NULL); // थ्रेड के बाहर निकलने की प्रतीक्षा करें
    printf("sum = %d\n", sum);
}

void *runner(void *param) {
    int i, upper = atoi(param);
    sum = 0;
    for(i = 1; i <= upper; i++)
        sum += i;
    pthread_exit(0);
}

Pthreads API का उपयोग करके मल्टीथ्रेडेड C प्रोग्राम।

  1. - C# में सिंपल थ्रेड बनाना

    C# में System.Threading.Thread क्लास का उपयोग करके एक नया थ्रेड बनाया जा सकता है। थ्रेड एक निष्पादन पथ होता है जो मुख्य प्रोग्राम के समानांतर चलता है। थ्रेड बनाने के चरण थ्रेड में चलने वाला मेथड परिभाषित करें। ThreadStart डेलीगेट बनाएं जो उस मेथड को इंगित करता है। Thread ऑब्जेक्ट इंस्ट

  1. - C# में थ्रेड को समाप्त करना (Kill/Stop)

    महत्वपूर्ण: .NET में Thread.Abort() मेथड अप्रचलित (obsolete) है और इसका उपयोग नहीं करना चाहिए क्योंकि यह अप्रत्याशित व्यवहार और संसाधन लीक का कारण बन सकता है। सही दृष्टिकोण: कैंसिलेशन टोकन/फ्लैग पैटर्न थ्रेड को सुरक्षित रूप से रोकने के लिए एक शेयर्ड फ्लैग (या CancellationToken) का उपयोग करें जिसे थ

  1. - Java में थ्रेड पूल

    एक थ्रेड पूल पूर्व-आरंभिक थ्रेड्स का संग्रह है। थ्रेड पूल के पीछे सामान्य योजना विधि स्टार्टअप पर कई थ्रेड्स बनाना और उन्हें एक पूल में रखना है, जहां वे बैठते हैं और काम की प्रतीक्षा करते हैं। जब एक सर्वर भागीदारी के लिए कॉल प्राप्त करता है, तो यह इस पूल से एक थ्रेड को जगाता है—यदि कोई उपलब्ध है—और