ट्रैक
/
Go
Go
/
अभ्यास
/
समानांतर अक्षर आवृत्ति
समानांतर अक्षर आवृत्ति

समानांतर अक्षर आवृत्ति

मध्यम

निर्देश

समानांतर गणना की मदद से टेक्स्ट में अक्षरों की आवृत्ति गिनिए।

समानांतरता का मतलब है उन कामों को साथ-साथ करना जिन्हें एक के बाद एक करके भी किया जा सकता है। इसका एक आम उदाहरण अक्षरों की आवृत्ति गिनना है। टेक्स्ट की सूची में हर अक्षर की कुल आवृत्ति निकालने के लिए समानांतरता अपनाइए।

कॉनकरेंसी बनाम पैरेललिज़्म

Go में कॉनकरेंसी को गोरूटीन के ज़रिए लागू किया जाता है, जिन्हें go कीवर्ड से शुरू किया जाता है। यह कॉनकरेंसी देने का सरल, हल्का और सुंदर तरीका है और इस भाषा की सबसे बड़ी शक्तियों में से एक है।

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

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

और जानने के लिए The Go Blog की यह पोस्ट देखिए: Concurrency is not parallelism.

कॉनकरेंसी के संसाधन

अगर आप Go के कॉनकरेंसी फीचर में नए हैं, तो यहाँ कुछ संसाधन हैं जो आपको शुरू करने में मदद करेंगे। इस अभ्यास को शुरू करने से पहले इन पर एक बार देख लीजिए:

बहुत गहराई में जाना चाहें तो @kat-co की किताब Concurrency in Go पढ़ सकते हैं।

टेस्टिंग

इस अभ्यास के लिए यूनिट टेस्ट यह तय नहीं कर सकते कि आपने कॉनकरेंट हल अच्छा लिखा है या नहीं। इसके बजाय सबसे अच्छा यह है कि आप इस अभ्यास को स्थानीय रूप से हल कीजिए और go test -bench . से बेंचमार्क चलाइए। एक अच्छे हल में आप देखेंगे कि सीक्वेंशियल वर्शन की तुलना में कॉनकरेंट वर्शन प्रति ऑपरेशन कम नैनोसेकंड (ns/op) दिखाता है।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Go Exercism

समानांतर अक्षर आवृत्ति शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।

समानांतर अक्षर आवृत्ति को गहराई से जानिए!

हम कंकरेंसी और समानांतरता के बीच के अंतर पर नज़र डालते हैं, और देखते हैं कि JavaScript, Go, Elixir तथा Rust जैसी भाषाएँ कौन-कौन से अलग-अलग तरीके अपनाती हैं।