Qt 5.11 - Thread Support

धागा समर्थन




qt

धागा समर्थन

थ्रेड सपोर्ट कमांड एक क्लास या फ़ंक्शन में मल्टीथ्रेडेड प्रोग्रामिंग के लिए समर्थन के स्तर को निर्दिष्ट करने के लिए हैं। समर्थन के तीन स्तर हैं: nonreentrant , nonreentrant और nonreentrant

डिफ़ॉल्ट nonreentrant जिसका अर्थ है कि संबंधित थ्रेड या फ़ंक्शन को कई थ्रेड्स द्वारा नहीं बुलाया जा सकता है। Reentrant और threadsafe मुख्य रूप से कक्षाओं के लिए उपयोग किए जाने वाले स्तर हैं।

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

जब एक वर्ग को \reentrant या \threadsafe nonreentrant रूप में चिह्नित किया जाता है, तो उस वर्ग में कार्यों को nonreentrant \nonreentrant कमांड का उपयोग करके nonreentrant चिह्नित किया जा सकता है।

उदाहरण

\beginqdoc
    \class QLocale
    \brief The QLocale class converts between numbers and their
    string representations in various languages.

    \reentrant
    \ingroup i18n
    \ingroup text

    QLocale is initialized with a language/country pair in its
    constructor and offers number-to-string and string-to-number
    conversion functions similar to those in QString.

    ...

    \nonreentrant

    Sets the global default locale to \a locale. These values are
    used when a QLocale object is constructed with no
    arguments. If this function is not called, the system's locale
    is used.

    \warning In a multithreaded application, the default locale
    should be set at application startup, before any non-GUI
    threads are created.

    \sa system(), c()
\endqdoc
void QLocale::setDefault(const QLocale &locale)
{
    default_d = locale.d;
}

QDoc इसे प्रस्तुत करता है:

QLocale क्लास संदर्भ

QLocale वर्ग विभिन्न भाषाओं में संख्याओं और उनके स्ट्रिंग अभ्यावेदन के बीच परिवर्तित होता है। अधिक...

#include <QLocale>

नोट: इस श्रेणी के सभी कार्य सेट setDefault() को छोड़कर, setDefault()

...

सदस्य प्रकार प्रलेखन

...

शून्य QLocale :: setDefault (const QLocale & locale)

वैश्विक डिफ़ॉल्ट स्थान को लोकेल पर सेट करता है। इन मानों का उपयोग तब किया जाता है जब QLocale ऑब्जेक्ट का निर्माण बिना किसी तर्क के किया जाता है। यदि यह फ़ंक्शन नहीं कहा जाता है, तो सिस्टम का लोकेल उपयोग किया जाता है।

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

चेतावनी: यह फ़ंक्शन पुनर्व्यवस्थित नहीं है।

system() और c() भी देखें।

...

जैसा कि ऊपर दिखाया गया है, QDoc एक अधिसूचना उत्पन्न करता है जब एक वर्ग को रीएन्ट्रेंट घोषित किया जाता है, और अपवादों (घोषित अप्रसार कार्यों) को सूचीबद्ध करता है। reentrant पर सामान्य दस्तावेज का लिंक शामिल है। एक चेतावनी के अलावा, " चेतावनी : यह फ़ंक्शन रीएन्ट्रेंट नहीं है।", गैर-अप्रचलित कार्यों के प्रलेखन में उत्पन्न होता है।

QDoc एक ही अधिसूचना और चेतावनियों को उत्पन्न करेगा जब एक वर्ग को थ्रेडसेफ़ घोषित किया जाता है।

अधिक जानकारी के लिए सामान्य दस्तावेज को reentrant

आदेश

\सुरक्षित धागा

\ Threadsafe कमांड में डॉक्यूमेंट में एक लाइन शामिल है जो यह इंगित करने के लिए है कि संबंधित वर्ग या फ़ंक्शन थ्रेडसेफ़ है और एक साथ कई थ्रेड्स द्वारा कॉल किया जा सकता है, तब भी जब अलग-अलग इनवोकेशन संदर्भ साझा डेटा को संदर्भित करते हैं।

कमांड को अपनी लाइन पर खड़ा होना चाहिए।

इस आदेश से उत्पन्न प्रलेखन \reentrant कमांड के लिए उत्पन्न के समान होगा। ऊपर दिए गए उदाहरण को प्रस्तावना में देखें।

\nonreentrant और \nonreentrant भी देखें।

\ रैत्रांत

\ Reentrant कमांड इंगित करता है कि संबंधित वर्ग या फ़ंक्शन को एक साथ कई थ्रेड्स द्वारा बुलाया जा सकता है, बशर्ते कि प्रत्येक आह्वान अपने स्वयं के डेटा का संदर्भ देता हो। ऊपर का introduction देखें।

कमांड को अपनी लाइन पर खड़ा होना चाहिए।

\nonreentrant और \threadsafe भी देखें।

\ nonreentrant

\ Nonreentrant कमांड इंगित करता है कि संबंधित वर्ग या फ़ंक्शन को कई थ्रेड्स द्वारा नहीं बुलाया जा सकता है। नॉनटेंटेंट डिफॉल्ट केस है।

कमांड को अपनी लाइन पर खड़ा होना चाहिए।

जब किसी वर्ग को \reentrant या \threadsafe nonreentrant रूप में चिह्नित किया जाता है, nonreentrant उस कार्य में बहिष्कृत किए जाने वाले कार्यों की \fn टिप्पणी में इस आदेश का उपयोग करते हुए उस वर्ग के कार्यों को nonreentrant चिह्नित किया जा सकता है।

\reentrant और \threadsafe भी देखें।