मैं डी के साथ प्रोग्रामिंग करने की कोशिश कर रहा हूं और मैं किसी समस्या का सामना कर चुका हूं। मैंने core.thread थ्रेड क्लास का उपयोग करना शुरू कर दिया जो थ्रेड शुरू करने के लिए समर्थन प्रदान करता है और उसके बाद वर्तमान थ्रेड में शामिल हो जाता है। डी लगता है कि लोग लॉक/सिंक्रनाइज़ेशन विधियों के बजाय संदेश पासिंग का उपयोग करना चाहते हैं, इसलिए मैंने सोचा कि मैं इसे आज़मा दूंगा, लेकिन मुझे देखे गए संदेश के हर उदाहरण को उस टिड की आवश्यकता है जिसे मैं थ्रेड क्लास से प्राप्त नहीं कर सकता। कोड उदाहरण जो मैं ऑनलाइन देखता हूं वास्तव में स्पॉन का उपयोग करता है जो थ्रेड रैपर का उपयोग करने के बजाय टिड देता है, और फिर आप थ्रेड को संदेशों को पास करने के लिए टिड का उपयोग करते हैं। लेकिन अब इसके धागे के आधार पर धागे में शामिल होने का कोई तरीका नहीं लगता है! और न केवल वह है, लेकिन आप एक प्रतिनिधि को उखाड़ फेंकने में सक्षम नहीं लग रहे हैं, जिसके लिए मुझे एक अनावश्यक स्तर का संकेत जोड़ने की आवश्यकता है।डी भाषा - थ्रेड बनाम स्पॉन
तो मेरा प्रश्न सबसे पहले है, थ्रेडिंग के दो पूरी तरह से अलग स्वाद क्यों हैं? और सबसे दूसरा, वे दोनों इतने अधूरे क्यों हैं जब वे एक साथ मूल रूप से आपको जो कुछ भी चाहिए, प्रदान करते हैं?
वैसे मैं कैसे बताऊंगा कि धागा कब समाप्त हो गया है? बस कहें कि आपके पास एक ऐसा मुख्य चीज है जो कुछ भी नहीं कर रहा है और दूसरा धागा चल रहा है। आम तौर पर मेरे पास मुख्य कॉल thread.join() होगा। मैं संदेश को गुजरने के माध्यम से वही काम कैसे करूंगा क्योंकि मुख्य डिफ़ॉल्ट धागा है और इसमें कोई बोली नहीं है, इसलिए कोई संदेश प्राप्त नहीं हो सकता है? – Floss
'प्राप्त करें' या 'प्राप्त करें' का उपयोग करें। – Bernard
@ फ़्लास कार्य पूरा होने पर 'रोक दिया गया' संरचना भेजता है और केवल एक प्राप्त करता है, केवल 'thisTid' आपको वर्तमान थ्रेड का टिड देगा, भले ही यह अस्तित्व में न हो (मुख्य थ्रेड और कोई थ्रेड समेत) 'Thread.start' के साथ शुरू हुआ) –