सामान्य दृश्य नियंत्रक कोड लिखते समय, क्या मुझे लगता है कि इसे केवल एक ईवेंट-लूप थ्रेड से ही बुलाया जाएगा? थ्रेड-सुरक्षित बनाने के लिए मुझे किस तरह की कक्षाओं की आवश्यकता है? सामान्य परिस्थितियां क्या हैं जहां एकाधिक धागे शामिल हैं?मुझे आईओएस एप्लिकेशन में थ्रेड-सुरक्षा के बारे में चिंता करने की आवश्यकता कब है?
उत्तर
यदि आप सामान्य UIViewController कोड लिख रहे हैं, तो आपको आईओएस में थ्रेड-सुरक्षा के बारे में चिंता करने की आवश्यकता नहीं है। आईओएस में, यूआई के बारे में कोई भी संदेश मुख्य धागे पर चलाना चाहिए।
यदि आप स्वयं द्वारा पृष्ठभूमि में कुछ संदेश नहीं करते हैं, तो आमतौर पर, आपको थ्रेड के बारे में चिंता करने की ज़रूरत नहीं है, ज्यादातर स्थितियों में, यह हमेशा मुख्य धागे पर होगा।
पीएस गेम किट जैसे कुछ फ्रेमवर्क कुछ बार पृष्ठभूमि में संदेश करेंगे, लेकिन यह यूआई के बारे में नहीं है और ऐप्पल से दस्तावेज़ आपको यह सुनिश्चित करने के लिए चेतावनी देगा कि संदेश मुख्य धागे पर चल रहा है या नहीं।
Concurrency Programming Guide सहायक हो सकता है।
concurrency programming guide अच्छा है। ध्यान में रखने के लिए यहां कुछ सुपर महत्वपूर्ण चीजें दी गई हैं।
- आपको केवल मुख्य धागे से यूआई अपडेट करना चाहिए। यह आपको सूक्ष्म तरीकों से प्राप्त कर सकता है ...
- एनएसएनोटिफिकेशन उन धागे में प्राप्त किए जाएंगे जिनसे उन्हें निकाल दिया जाता है। इसलिए यदि आप एक थ्रेड लॉन्च करते हैं और यूआई एक्शन ट्रिगर करने के लिए एनएसएनोटिफिकेशन की सदस्यता लेते हैं, तो आपको यह जांचना चाहिए कि जब आप इसे प्राप्त करते हैं तो आप किस धागे पर हैं। यदि यह मुख्य धागे पर नहीं है तो NSObject के प्रदर्शन का चयन करें चयनकर्ताऑनमेन थ्रेड: withObject: waitUntilDone: इसे मुख्य थ्रेड पर प्राप्त करने के लिए।
- यदि आप गैर-यूई संदर्भ में कुछ ड्राइंग कर रहे हैं, तो मेरा मानना है कि कोर ग्राफिक्स अब थ्रेड सुरक्षित है। (मुझे विश्वास है कि CATiledLayer इस वजह से कुछ चालाक चीजें करता है)
- आम तौर पर नियंत्रकों को देखने के लिए, आपको केवल एक ही घटना लूप के बारे में सोचना चाहिए जो मुख्य धागे पर है। किसी अन्य धागे पर अपना खुद का इवेंट लूप बनाने से पहले दो बार सोचें।
बस पुष्टि करने के लिए, कोर ग्राफिक्स थ्रेड सुरक्षित है, और CATiledLayer यह सभी पृष्ठभूमि थ्रेड पर चित्रकारी करता है (यदि आपके पास एक कोर कोर है तो केवल एक पृष्ठभूमि थ्रेड)। –
- 1. अंतहीनता के बारे में चिंता कब करें?
- 2. आईओएस एप्लिकेशन में वास्तव में एक MainWindow.xib की आवश्यकता है?
- 3. मुझे कॉल करने की आवश्यकता कब है - [UIViewController initWithNibName: बंडल:]?
- 4. मुझे आईओएस में setNeedsDisplay को कॉल करने की आवश्यकता कब होगी?
- 5. मुझे जावास्क्रिप्ट प्रोटोकॉल निर्दिष्ट करने की आवश्यकता कब है?
- 6. मुझे टिंकर एप्लिकेशन में मेनलोप को कॉल करने की आवश्यकता कब होगी?
- 7. SAML काम करने के लिए मुझे XML हस्ताक्षर के बारे में क्या जानने की आवश्यकता है?
- 8. आपको थ्रेड सुरक्षा के बारे में चिंता करने की ज़रूरत है?
- 9. क्या मुझे पायथन में परिपत्र संदर्भों के बारे में चिंता करनी चाहिए?
- 10. मुझे सी ++ में अनाम कक्षा की आवश्यकता कब होगी?
- 11. मुझे MPI_Barrier() का उपयोग करने की आवश्यकता कब होगी?
- 12. क्या मुझे वास्तव में एप्लिकेशन में गहन संदर्भ उदाहरणों को पारित करने की आवश्यकता है?
- 13. क्या मुझे std :: vector के साथ स्मृति विखंडन के बारे में चिंता करनी चाहिए?
- 14. क्या मुझे जावा में इनपुटस्ट्रीम बंद करने की आवश्यकता है?
- 15. क्या हमें अभी भी कुकीज़ बंद करने वाले उपयोगकर्ताओं के बारे में चिंता करने की ज़रूरत है?
- 16. log4net: गतिशील रूप से लॉगर बनाना, क्या मुझे किसी चीज़ के बारे में चिंता करनी चाहिए?
- 17. फ्लास्क (डब्लूएसजीआई) में एक वैश्विक सिंगलटन के साथ काम करना, क्या मुझे दौड़ की स्थिति के बारे में चिंता करने की ज़रूरत है?
- 18. आईओएस में डायल नंबर वास्तव में पुष्टि की आवश्यकता है?
- 19. आईओएस में प्रतिनिधियों - कुछ स्पष्टीकरण की आवश्यकता
- 20. मुझे इस विधि को कॉल करने की आवश्यकता कब है Runtime.getRuntime()। AddShutdownHook()
- 21. क्यों (और कब) मुझे आकार के बाद कोष्ठक का उपयोग करने की आवश्यकता है?
- 22. क्या मुझे अपने आईफोन ऐप में ईयूएलए की आवश्यकता है?
- 23. मुझे Backbone.js में _.bindAll() का उपयोग करने की आवश्यकता कब होगी?
- 24. मुझे C# में stackalloc कीवर्ड का उपयोग करने की आवश्यकता कब होगी?
- 25. मुझे टाइपिफ़ की आवश्यकता क्यों नहीं है?
- 26. __declspec क्या है और मुझे इसे कब उपयोग करने की आवश्यकता है?
- 27. एनएससीपीइंग की आवश्यकता कब होती है?
- 28. किसी एप्लिकेशन को नवीनतम रेल संस्करण में अपग्रेड करने के लिए मुझे क्या करने की आवश्यकता है?
- 29. मेरे रेल एप्लिकेशन को एक यथार्थ वास्तुकला में फिट करने के लिए मुझे कड़ी मेहनत करने की आवश्यकता क्यों है?
- 30. PHP की परिपत्र संदर्भ समस्या का स्तर क्या है और क्या मुझे इसके बारे में चिंता करनी चाहिए?
कुछ ड्राइंग कोड बहु-थ्रेडेड हैं, जैसे मल्टी-कोर CPU पर चलते समय CATiledLayer। –