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 प्रोग्राम।