मुझे लगता है कि "मूल" मुद्दों के बारे में आप जिस तरह से TThread
से संबंधित नहीं हैं बात कर रहे हैं कार्यान्वित किया जाता है, लेकिन RTL के अन्य पहलुओं के लिए:
- स्मृति प्रबंधक, बहुत तेजी से और अच्छी तरह से लिखा है, लेकिन एकाधिक कोर पर कई समवर्ती धागे के साथ चलते समय यह एक रैखिक तरीके से स्केल करने में विफल रहता है;
- संदर्भ बार गणना प्रकार (
string
और गतिशील सरणियों की तरह), परमाणु संदर्भ गिनती (64 में InterlockedDecrement/InterlockedIncrement) है, जो भी मल्टी-थ्रेडेड आवेदनों पर बुरी तरह पैमाने पर कर सकते हैं (जो है के लिए एक एएसएम lock
opcode के साथ लागू किया जाता है जब यह ओपोड निष्पादित होता है तो सभी कोर फ्रीज होते हैं - भले ही नए CPUs ने इसके बारे में प्रगति की हो, RCU कार्यान्वयन बेहतर हो सकता है)।
उन कमजोरी सभी बहु धागा पुस्तकालयों के लिए आम हैं - यहां तक कि OTLthis के बारे में भुगतना होगा। वे बहुत जल्दी डेल्फी संस्करणों के बाद से मौजूद हैं, और अभी भी डेल्फी XE2 के साथ हैं। 64 बिट कार्यान्वयन समान है (यहां तक कि धीमा), और मैक ओएस प्लेटफार्म एक ही कार्यान्वयन साझा करता है।
डेल्फी में स्केलिंग बहु-थ्रेडेड अनुप्रयोगों को लिखने के तरीके के बारे में this other SO question देखें।
ईमानदार होने के लिए, उपरोक्त दोनों बिंदु केवल कुछ विशिष्ट प्रकार के अनुप्रयोगों पर दिखाई देंगे।
तो डेल्फी में बहु-थ्रेडिंग के बारे में चिंता करने की कोई बात नहीं है, अगर आप उन बिंदुओं को जानते हैं, और अपने धागे में मेमोरी मैनेजर कॉल या स्ट्रिंग प्रक्रिया का दुरुपयोग नहीं करते हैं।
स्रोत
2011-10-11 13:58:39
मुझे नई सुविधाओं में से एक याद आया: डेल्फी एक्सई के तहत आप एक धागे का नाम दे सकते हैं। ठंडा। अन्य हैं? – Ampere
'TThread.NameThreadForDebugging' D2010 में मौजूद है। मुझे विश्वास नहीं है कि डेल्फी के साथ जहाजों के थ्रेडिंग कोड के साथ कोई गंभीर समस्या है। सबसे लोकप्रिय और सर्वोत्तम थ्रेडिंग लाइब्रेरी [OmniThreadLibrary] है (http://otl.17slon.com/) लेकिन @ gabr ऐसा कहने के लिए बहुत मामूली है। –
डेल्फी के पास थ्रेडिंग लागू करने के तरीके के साथ कोई "मूल समस्याएं" नहीं हैं। मैं बिना किसी वास्तविक परेशानी के 2003 से टीटीएचड के आधार पर कक्षाओं का उपयोग कर रहा हूं। हालांकि, आप खुद को परेशानी बचाने के लिए किसी भी मौजूदा तृतीय-पक्ष थ्रेडिंग फ्रेमवर्क से शुरुआत करना चाहते हैं। – Misha