खोज…


परिचय

C11 में एक मानक थ्रेड लाइब्रेरी है, <threads.h> , लेकिन कोई ज्ञात संकलक नहीं है जो अभी तक इसे लागू करता है। इस प्रकार, C में मल्टीथ्रेडिंग का उपयोग करने के लिए, आपको pthread.h हेडर का उपयोग करके प्लेटफ़ॉर्म विशिष्ट कार्यान्वयन जैसे POSIX थ्रेड्स लाइब्रेरी (जिसे अक्सर pthreads के रूप में संदर्भित किया जाता है) का उपयोग करना चाहिए।

वाक्य - विन्यास

  • Thrd_t // कार्यान्वयन-परिभाषित पूर्ण ऑब्जेक्ट प्रकार एक थ्रेड की पहचान
  • int Thrd_create (Thrd_t * thr, Thrd_start_t func, void * arg); // एक धागा बनाता है
  • int Thrd_equal (थ्रड_ट थ्रोट0, थ्रड_ट थ्रोट 1); // जांचें कि क्या तर्क एक ही सूत्र को संदर्भित करते हैं
  • Thr_t Thrd_current (शून्य); // उस थ्रेड के पहचानकर्ता को लौटाता है जो इसे कॉल करता है
  • int Thrd_sleep (कास्ट स्ट्रक्चर टाइमपेक * अवधि, स्ट्रक्चर टाइमस्पेस * शेष); // कम से कम एक निश्चित समय के लिए कॉल थ्रेड निष्पादन को स्थगित करें
  • void Thrd_yield (शून्य); // अन्य थ्रेड को कॉल करने के बजाय चलाने के लिए अनुमति दें
  • _Noreturn void Thrd_exit (int res); // थ्रेड को कॉल करने वाले धागे को समाप्त करता है
  • int Thrd_detatch (थ्रड_ट थ्रोट; // वर्तमान परिवेश से दिए गए एक सूत्र को अलग करता है
  • int Thrd_join (थ्रड_ट थ्रोट, इंट * रेस); // दिए गए थ्रेड को समाप्त होने तक वर्तमान थ्रेड को ब्लॉक करता है

टिप्पणियों

थ्रेड्स का उपयोग अतिरिक्त अपरिभाषित व्यवहार का परिचय दे सकता है जैसे कि http://www.riptutorial.com/c/example/2622/data-race । विभिन्न थ्रेड C11 के बीच साझा किए जाने वाले चर के लिए रेस-फ्री एक्सेस के लिए mtx_lock() mutex कार्यक्षमता या (वैकल्पिक) http://www.riptutorial.com/c/topic/4924/atomics डेटा-प्रकार और संबंधित कार्य प्रदान करता है stdatomic.h

C11 थ्रेड्स सरल उदाहरण है

#include <threads.h>
#include <stdio.h>

int run(void *arg)
{
    printf("Hello world of C11 threads.");

    return 0;
}

int main(int argc, const char *argv[])
{
    thrd_t thread;
    int result;

    thrd_create(&thread, run, NULL);

    thrd_join(&thread, &result);

    printf("Thread return %d at the end\n", result);
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow