7

क्या कोई मामला है जब कोई भी समेकन के लिए जीसीडी के बजाय कच्चे एनएसटीएचड का उपयोग करना चाहेगा? मुझे जीसीडी पसंद है, लेकिन मैं जानना चाहता हूं कि मुझे अंततः कोको/कोको-टच के लिए एनएसटीएचड्स का उपयोग करने की आवश्यकता होगी या नहीं।जब कोई भी जीसीडी पर एनएसटीएचडी का उपयोग करना चाहेगा?

उत्तर

5

मैं नियंत्रण, अच्छा प्रदर्शन और पोर्टेबिलिटी के लिए pthread एस का उपयोग करता हूं। कभी-कभी, आप अतिरिक्त NSObject इंटरफ़ेस ऑफ़र के लिए NSThread का उपयोग करने का विकल्प चुन सकते हैं।

कुछ निचले स्तर के इंटरफेस हैं जहां आपको उपयोग किए जाने वाले एपीआई के साथ धागे को समन्वयित करने की आवश्यकता है (उदा। रीयलटाइम I/O या प्रतिपादन)। कभी-कभी आपके द्वारा उपयोग किए जाने वाले थ्रेड के बारे में लचीलापन होता है, कभी-कभी इस स्थिति में NSThread का उपयोग करना सुविधाजनक होता है ताकि आप आसानी से इन इंटरफेस के साथ सीएफ या एनएस रन लूप का उपयोग कर सकें। तो आपके थ्रेड पर सेट रन लूप पैरामीटर की तुलना में एपीआई के लिए अधिक रुचि की संभावना है। इन मामलों में, जीसीडी आवश्यक रूप से एक विकल्प नहीं हो सकता है।

लेकिन ... अधिकांश देवताओं को अक्सर इन स्तरों पर जाने की आवश्यकता नहीं होगी।

2

कुछ विशेष परिस्थितियां हो सकती हैं जहां आपको कुछ अजीब करना है जो जीसीडी के साथ नहीं किया जा सकता है। लेकिन जीसीडी के साथ आप जो भी कर सकते हैं, आपको इसे इस तरह करना चाहिए (जीसीडी और थ्रेड पारस्परिक रूप से अनन्य नहीं हैं, अगर आपको वास्तव में थ्रेड का उपयोग करने की आवश्यकता है तो आपको पहले से मौजूद किसी भी जीसीडी सामान को बदलने की आवश्यकता नहीं है)।

हालांकि निश्चित नहीं है कि मामला क्या होगा। हो सकता है कि आपको एक माध्यमिक विशेष रनलूप स्थापित करने की आवश्यकता हो (सुनिश्चित नहीं है कि यह जीसीडी के साथ किया जा सकता है लेकिन निश्चित रूप से यह थ्रेड के साथ हो सकता है)। या कुछ अन्य विशेष मामला हो सकता है जो मैं इस समय नहीं समझ सकता।

3

आपको अनिवार्य रूप से लगभग ओएस एक्स या आईओएस पर एनएसटीएचड/पीथ्रेड एपीआई का उपयोग करने की आवश्यकता नहीं है। अन्य प्लेटफार्मों पर, संभवतः हां (हालांकि जीसीडी * बीएसडी, लिनक्स और यहां तक ​​कि विंडोज़ तक व्यापक रूप से पोर्ट किया जा रहा है - ग्रैंड सेंट्रल डिस्पैच के लिए विकिपीडिया पेज देखें), लेकिन ऐप्पल ओएस प्लेटफ़ॉर्म पर आप लगभग हमेशा एक बेहतर परिणाम प्राप्त करने जा रहे हैं आपके लिए थ्रेड लाइफसाइक्ल प्रबंधन करने के लिए सिस्टम। एकमात्र ऐसा मामला जहां आप कल्पना कर सकते हैं कि आप अपना खुद का थ्रेड प्रबंधन करना चाहते हैं, वे बहुत ही वास्तविक समय परिदृश्य में हैं जहां आपको थ्रेड प्राथमिकताओं को प्रबंधित करने की आवश्यकता होती है और प्रत्येक धागे हाथ से काम करने की मात्रा को संतुलित करके थ्रेड विलंबता पर प्रत्यक्ष नियंत्रण रखता है।