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

इम्प्लिसिट थ्रेडिंग और लैंग्वेज-बेस्ड थ्रेड्स

इम्प्लिसिट थ्रेडिंग

मल्टीथ्रेडेड एप्लिकेशन के डिजाइन की कठिनाइयों को दूर करने का एक तरीका है थ्रेड निर्माण और प्रबंधन को एप्लिकेशन डेवलपर्स से कंपाइलर्स और रन-टाइम लाइब्रेरी में स्थानांतरित करना। इसे इम्प्लिसिट थ्रेडिंग कहा जाता है, जो आज एक लोकप्रिय प्रवृत्ति है।

इम्प्लिसिट थ्रेडिंग मुख्य रूप से लाइब्रेरी या अन्य भाषा समर्थन का उपयोग करके थ्रेड्स के प्रबंधन को छिपाती है। C के संदर्भ में सबसे आम इम्प्लिसिट थ्रेडिंग लाइब्रेरी OpenMP है।

OpenMP

OpenMP, C, C++, या FORTRAN में लिखे प्रोग्राम के लिए कंपाइलर निर्देशों का एक सेट और एक API है जो शेयर्ड-मेमोरी वातावरण में समानांतर प्रोग्रामिंग के लिए समर्थन प्रदान करता है। OpenMP समानांतर क्षेत्रों की पहचान करता है जो कोड के ब्लॉक हैं जो समानांतर में चल सकते हैं। डेवलपर्स समानांतर क्षेत्रों पर कंपाइलर निर्देश डालते हैं, जो OpenMP रन-टाइम लाइब्रेरी को क्षेत्र को समानांतर में निष्पादित करने का निर्देश देते हैं।

उदाहरण

#include <omp.h>
#include <stdio.h>

int main(int argc, char *argv[]) {
    /* अनुक्रमिक कोड */
    #pragma omp parallel {
        printf("I am a parallel region.");
    }
    /* अनुक्रमिक कोड */
    return 0;
}

आउटपुट: "I am a parallel region."

जब OpenMP को `#pragma omp parallel` निर्देश मिलता है, तो यह सिस्टम में प्रोसेसिंग कोर जितने थ्रेड बनाता है। फिर सभी थ्रेड्स एक साथ समानांतर क्षेत्र को निष्पादित करते हैं। प्रत्येक थ्रेड के समानांतर क्षेत्र से बाहर निकलने पर वह समाप्त हो जाता है।

ग्रैंड सेंट्रल डिस्पैच (GCD)

GCD, Apple के Mac OS X और iOS के लिए एक तकनीक है जो C भाषा के एक्सटेंशन, एक API, और एक रन-टाइम लाइब्रेरी का संयोजन है जो डेवलपर्स को कोड के उन हिस्सों को चिह्नित करने की अनुमति देती है जो समानांतर में चल सकते हैं।

थ्रेड्स एज़ ऑब्जेक्ट्स

Java और Python जैसी भाषाओं में थ्रेड्स को ऑब्जेक्ट्स के रूप में दर्शाया जाता है। Java में `Thread` क्लास या `Runnable` इंटरफेस, Python में `threading` मॉड्यूल का उपयोग किया जाता है।

कंकरेंसी एज़ लैंग्वेज डिज़ाइन

नई भाषाएं जैसे Go (गोरूटीन और चैनल) और Rust (ऑनरशिप मॉडल के साथ थ्रेड्स) कंकरेंसी को भाषा डिजाइन में ही शामिल करती हैं।

  1. प्रिंट जॉब कैंसिल कैसे करें और प्रिंटर क्यू क्लियर करें: Windows 10 गाइड प्रिंट जॉब कैंसिल कैसे करें और प्रिंटर क्यू क्लियर करें: Windows 10 गाइड

    कोई फर्क नहीं पड़ता कि आप किस प्रिंटर का उपयोग करते हैं, आप उन स्थितियों का सामना करने की संभावना रखते हैं जहां आपको प्रिंट जॉब कैंसिल करने की आवश्यकता होती है। शायद आपने गलत दस्तावेज़ भेजा, या एक प्रिंट जॉब बहुत लंबा चल रहा है और प्रिंट क्यू में अन्य दस्तावेजों को ब्लॉक कर रहा है। आपके गलत प्रिंटिं

  1. हल: विंडोज 10 और 11 में प्रिंट क्यू डिलीट नहीं हो रही हल: विंडोज 10 और 11 में प्रिंट क्यू डिलीट नहीं हो रही

    प्रिंटर काम न करना उपयोगकर्ताओं के बीच आम है, लेकिन एक समस्या यह भी है कि दस्तावेज़ विंडोज 10 या विंडोज 11 में प्रिंट क्यू से डिलीट नहीं होगा। विषय-सूची: प्रिंट क्यू डिलीट न होना अवलोकन: प्रिंट जॉब क्यू में क्यों अटक जाते हैं? विंडोज 10 प्रिंट क्यू क्लियर न होने के 4 तरीके? प्रिंट क्यू डिलीट न होना

  1. C भाषा में अप्रत्यक्ष और स्पष्ट प्रकार रूपांतरण (Implicit and Explicit Type Conversion) C भाषा में अप्रत्यक्ष और स्पष्ट प्रकार रूपांतरण (Implicit and Explicit Type Conversion)

    प्रकार रूपांतरण (Type Conversion) एक डेटा प्रकार के मान को दूसरे डेटा प्रकार में बदलना। दो प्रकार: अप्रत्यक्ष (Implicit) - कंपाइलर स्वतः करता है स्पष्ट (Explicit) - प्रोग्रामर कास्ट ऑपरेटर से करता है 1. अप्रत्यक्ष प्रकार रूपांतरण (Implicit Type Conversion) कंपाइलर द्वारा स्वतः जब ऑपरेंड्स अलग प