0:00
आज के इस वीडियो में मैं आप लोगों को बताऊंगा कि किस तरह से multi-threading की जा सकती है पाइथन प्रोग्रामिंग के अंद�
0:05
multi-threading module का इस्तेमाल करके चलते हैं computer screen में और पाइथन की multi-threading को आज देखेंग�
0:11
let's get started इस विजय इस मल्टी थ्रेडिंग आप लोगों को बताने से पहले आप लोगों को बताना चाहता हूं कि मल्टी थ्रेडिं�
0:26
से क्या-क्या अचीफ कर सकते हैं आप लोगों क्यों इस्तेमाल करोगे मल्टी थ्रेडिंग को सबसे पहला जो यूज के�
0:31
ट्रेडिंग आपको होता है कि जब रिसोर्स अपने डाउनलोड करना चाहते हो इंटरनेट से तो मतलब मान लो कि मेर�
0:37
पास 10 सर्वर्स है और उन 10 सर्वर्स से मुझे अलग-अलग डाटा चाहिए अगर मैं एक-एक करके डाउनलोड करता हू�
0:43
उनको अगर अपने पाइथन प्रोग्राम में तो यार वह एक करके डाउनलोड होगा और यार अगर वह एक करके डाउनलोड होगा तो मैं टाइम वेस्ट कर रहा हूं क्योंकि शायद मैं पैलली भी कर सकता हूं उसको देखेंगे यह चीज की पैलली कैसे करना है क्योंकि रिस�
1:13
और मल्टी थ्रेडिंग मॉडल का इस्तेमाल करना है तो यार आ जाओ जल्दी से रैपल को खोलते और दिखाता हूं आप लोगों कैस�
1:19
चीजें की जाती हैं ठीक है और डिरेक्टली आप लोगों ने यहां पर दिखाऊंगा कि कैसे करना है ठीक है उससे क्या होग�
1:25
कि जब मैं बताऊंगा कैसे करना है डिरेगली तो एक अच्छी फील आईगी आपको आप भी कहोगे हाइर अब मुझे समझ मे�
1:31
आ गया कि कैसे करना है तो सबसे पहले तो मैं आपको बता दूं कि मल्टी थ्रेडिंग करके सॉरी थ्रेडिंग करक�
1:36
पॉइंट होता है बाइट हमने इंपोर्ट रेडिंग कर दिया अमालों मेरे पास एक फंक्शन है और यह कुछ कर रहा ह�
1:42
ठीक है मैं इंपोर्ट टाइम करके एक फंक्शन मनाऊंगा और यह क्या करेगा कि जितने में यहां पर सेकंड लिखे हु�
1:52
उसे सेकंड्स के लिए स्लीप कर देगा मतलब यह एक फंक्शन है जो कि यहां पर इंडिकेट सम टास्क बीन ड�
2:05
मतलब क्या होता है कि कोई भी कुछ भी काम अगर आप करोगे पाइथन प्रोग्रामिंग में तो वह टाइम लेगा ठीक है य�
2:12
इंडिकेट करें कि कुछ काम हो रहा है ठीक है समझ जाओ आप लोग कि यहां पर कहने का क्या मतलब है तो यहां प�
2:17
मैंने डेफ फंक लिखा और यहां पर यह कराओ वह मालों मैं यहां पर फंक वन को यह फंक फोर को रन करता हूं और मै�
2:24
करता हूं मैं आप पर प्रेंट भी करूंगा मैं कहूंगा स्लीपिंग फॉर और यहां पर मैं लिख दूंगा सेकंड्स सेकंड्�
2:34
मतलब कि अगर चार सेकंड्स के लिए स्लीप किया जा रहा है तो स्लीपिंग फॉर फोर सेकंड्स लिखकर आएगा वन स्लीपिं�
2:40
और वन सेकंड लिखकर आएगा एंड सो ऑन ठीक है तो अभी मैं इसको रन करूं आप लोगों को रन करके दिखाओ फंक फॉ�
2:46
मैंने किया और मालो मैं यहां पर एक आदौर बनाना चाहता हूं फंक्शन फंक फॉर किया फंक टू किया फंक वन किय�
2:52
मालो ये एक function है कुछ काम कर रहा है ठीक है और ये जो भी काम कर रहा है यहाँ पर उसमें लगेगा time ओवियस सी बात है तो funk 4, funk 2 और funk 1 एक एक करके execute होगे ठीक है तो मैं अगर आपको इसको run करके दिखाओं तो आप देखो sleeping for 4 second, 4 second के लिए रुकने वाला है यानि कि जब तक 4
3:22
तीनों को पैलली स्टार्ट कर सकते हैं अब यहाँ पर मान लो कि यह function ह�
3:27
कुछ इस तरह से इसे मान लो कि आप एक रेस्टरांट में जाते हो ठीक है अब आपने मान लो कहा कि मुझ�
3:32
खाना है पनीर वटर मसाला मुझे खाना है भिंडी की सबजी और मुझे खाना है रोटी ठीक ह�
3:38
अगर एक ही इंसान है वापर तो वो एक ही करके तीनों चीज़े बनाएगा तो अगर मान लो वो ये तीनों की तीनों डिशेस पांच मिनिट में बनाता ह�
3:45
तो पंधरा मिनिट लग जाएगा आपका खाना आने में लगेंगे की नहीं लगेंगे, I hope कीजी समझ में आ गई ही सबको
3:51
पांच-पांच minutes लग रहे हैं एक dish में, तो 5, 3, 15 होता है
3:55
अगर मान लो, तीन पालली लोग काम कर रहे हैं, तो कोई point नहीं है इस बात का
4:00
कि दूसरा इंसान रुके, पहले इंसान के खतम करने का इंतजार करे�
4:05
मतलब जैसे मान लोग एक इंसान भिंडी बना रहा है वो रुका रहे कि मैं रोटी तब बनाओंगा जब भिंडी बन जाएग�
4:09
फिर वो रोटी बना रहा है और तीसरा इंसान कहेगा मैं पनीर बटर मसाला तब बनाओगा जब यह रोटी बना लेग�
4:15
तो उसका भी point नहीं है ना इसलिए हम इन तीनों को एक साथ start करना चाहते है�
4:20
Python design Python programming language design Python Programming Language execute concurrent
4:32
वो हम बना सकते है threading की साइटर से, हम कह सकते हैं कि अलग-अलग threads handle करें इन तीनों के तीनों functions क�
4:39
तो हम thread syntax का इस्तेमाल करेंगे हम कहेंगे यहाँ पर threading.thread
4:43
हम यहाँ पर कहेंगे t1 is equal to threading.thread और एक thread बन जाएगा और हम कहेंगे कि भाई देखो ऐसा ह�
4:53
हमें यहाँ पर funk जो है वो 뭐 कॉल करना है और arguments क्या होने चाहिए उसके arguments
4:59
होने चाहिए मालो 4 ठीक है तो मैंने यहाँ पर एक t1 नाम से thread बना लिय�
5:04
और ऐसे ही मैं t2 और t3 के नाम से बना लूँ ठीक है तो जो का�
5:07
मैं उपर कर रहा था वो काम मैं बड़े एफिशेंटली यहां पर कर रहा हूं तो यह करने के मुझे जरूरत नहीं है मैं इसको कंवर्ट कर रहा हू�
5:13
मैं यहां पर एक काम करता हूं लिखता हूं नॉर्मल कोड और मैं यहां पर लिखता हूं कोड यूजिंग थ्रेड्�
5:20
तो मैं यहां पर लिखता हूं सीम कोड यूजिंग थ्रेड्स ठीक है जब मैं सीम कोड को थ्रेड से तैटी इस्तेमाल स�
5:29
करूंगा तो देखो चार दो और एक है आर्ग्यूमेंट तो चार यह आर्ग्यूमेंट दो और आर्ग्यूमेंट से अब मैं क्या करूंग�
5:34
मैंने पाइथन को बताना पड़ेगा कि मैं इसको बनाना चाहता हूँ confession को जाने लोगी गाड़ी को बनाना चाहता हू�
5:41
तो पहले पहली गाड़ी को बनाना चाहते हैं मतलब जैसे एक इंसान है वह बिंडी बनाने के लिए खड़ा हुआ ह�
5:46
आपको बताना पड़ेगा ना कि भाई तुम चालू कर दो बंडी बनाओ ठीक है तो टीवन एग्वल टू सॉरी बटी � Decode
5:52
स्टार्ट ठीक है और मैं उसी के साथ साथ टीवन टॉट स्टार्ट कर दूंगा टीवन टॉट स्टार्ट कर दूंगा ठीक है अ�
5:59
यहाँ पर क्या होगा, यह तीनों एक साथ start हो जाएंगे, ठीक है, तीनों के तीनों एक साथ start हो जाएंगे, तो मैं आपको दिखाता हूँ, जहाँ काम हमारा हो रहा था, 4, 2, 6, और एक 7 seconds में, अब कितनी दिर में हो जाएगा काम, मैं आपको दिखाता हूँ, तो मैं इसको run क�
6:29
टाइम डॉट पर फ्रॉम टर ठीक है इससे क्या होता है कि यह परफॉर्मेंस का रूप के लिए यह यूज किया जाता है तो मैंने आपक�
6:35
टी वन लिखा और यहां पर सोडीटी वन लिखोगा यह मेरा टीवन है थ्रेट टाइम लिख देता हूं टाइम वन इज एकवल टू य�
6:42
दिखा मैंने और अब मैं कहूंगा यहां पर टाइम टू इज इक्वल टू यह और मैं आप फिर प्रेंट करूंगा टाइम टू माइन�
6:50
टाइम वन टाइम टू माइनस टाइम वन तो जो मेरा पुराना कोड था वह कितनी दिर में चल रहा है मैं आपको दिखाता हूं व�
6:57
इस नियर में चल रहा पुराना कोड मेरा तो यहां पर स्लीपिंग फॉर फोर सेकेंड्स लिपिंग फॉर टू सेकेंड्स ला�
7:06
आराम से चल रहा है कंतर करते हुए फिर फाइनली गरेट टी वन इस रॉड डिफाइन है क्या हुआ तो यह टीवर का स्टेमा�
7:13
आपके जिन्नी के पूरे साथ सेकंड वेस्ट करने के बाद आपको दिखाऊंगा कि इतना लगा तो अब मैं क्या कर रहा हू�
7:32
तो यह नॉर्मल पर मैं सीम कोड यूजिंग थ्रेड जो यहां पर चलाओ लेकिन एक चैच है आप इसको चलाने से पहले प�
7:38
मैं चलाने के बाद ही आपको बताऊंगा कि आपको अच्छे समझ में आएगी तो मैं इसको भी लेता हूं और मैं इसको जर�
7:43
इसे कर लेता हूं अब मैं नॉर्मल वाला जो कोड इसको विंडियोट कर देता हूं और आप इसलिए टाइम को नहीं रखूंग�
7:48
नीचे सबसे अंदर में जब सब कुछ चल पड़ेगा तब मैं यह पर कैलक्यूलेटिंग टाइम ठीक है मैंने यह किया से�
7:57
रिपोर्ट यूजिंग थ्रेड्स अब मैं क्या करूंगा इसको रन करूंगा आप लोग चौक जाओगे देखकर कि ऑलमोस्ट जीर�
8:02
सेकंड्स ले रहा है अब आपको यार जीरो सेकंड्स यूजिंग लेटा अब देखो अब तीनों जब एक साथ स्टार्ट हो रहे है�
8:09
सबसे स्लोएस्ट प्रोसेस कौन सी है तीनों में सबसे यह वाली है जो कि एक सेकंड में कम हो रही है सॉरी स्लोएस्�
8:14
प्रोसेस यह वाली है जो कि चार सेकंड ले रही है ठीक है तो इस पूरे को पूरा होने में चार सेकंड लगने चाहि�
8:20
अगर मान लो कि जो पनीर बना रहा है वो चार सेकंड में बना रहा है चार मिनिट में बना रहा ह�
8:25
या फिर रोटी जो बना रहा है वो एक मिनिट में बना रहा है और जो भिंडी बना रहा है वो दो मिनिट में बना रहा ह�
8:30
chemical kinetics j slowest step is the rate limiting step zero T2 thread start script T3 thread start
9:01
और script में आगे बढ़ो यह खतम नहीं हुआ है बी बस start हुआ ह�
9:05
हमने इसका इंतिजार ही नहीं किया हमने इसको background में throw कर दिय�
9:08
होता रहेगा इसको side में फैको तो यह T1.start का मतलब तो आप यहाँ पर कह सकते ह�
9:26
t1.join t2.join और t3.join यानि कि मैं t1.join का मतलब मैं तब तक रुखना जाता हूँ जब तक t1 खतम ना हो जाय�
9:36
t2.join का मतलब मैं तब तक रुखना जाता हूँ जब तक t2 ना खतम हो जाय�
9:40
और t3.join का मतलब मैं तब तक रुखने जाता हूँ जब तक t3 खतम ना हो जाय�
9:43
तो मैं अगर इसको चलाऊंगा तो देखो ये तीनों जब तक नहीं चल जाते तो तक चलेग�
9:47
और ये अराउंड 4 सेकंड्स मुझे देगा जैसे कि आप लोग देख सकते हो तो threads काफी ज़्यादा useful होते हैं जब आप कोई भी चीज़ download करना चाते हो internet स�
9:55
यानि कि आपका जो task है वो IO bound है, CPU bound नहीं ह�
9:59
अब अगर मानलो मैं internet से कोई चीज़ डाउनलोड कर रहा हूँ तो इंतिजार करने का कोई point नहीं बनता न�
10:04
लो 10 फाइल्स है 10 की 10 फाइल्स एक-एक मिनट लेने डाउनलोड होने में तो क्या मैं उसे 10 मिनट में करू�
10:10
नहीं मैं उसको एक मिनट में कर सकता हूं थ्रेड्स का इस्तेमाल करके 10 की 10 फाइल्स को एक साथ डाउनलोड प�
10:14
लगा दूंगा कुछ ऐसा समझ लो कि आप अगर आपको अगर मैं 50 चीजें डाउनलोड करने को दूंगे पांच चीजें डाउनलो�
10:19
करने को तो आप पांचों को लगा दूंगा आपके दिना पांचों की पांचों फाइल्स लगा दिया मैंने डाउनलोड पर ए�
10:24
लगाओगे डाउनलोड पर नहीं पांचों की पांचों फाइल से एक साथ लगाओगे डाउनलोड पर अब बहुत सारे लोगों का सवाल यह होता है कि या जब हम पांचों की पांच फाइल डाउनलोड एक साथ लगाते हैं तो इंटरनेट स्पीड तो उतनी है हमारी पहली फ�
10:54
100 MBPS की speed से आपने लगवा रखा है 2 GBPS का internet
10:59
तो आपके 2 GBPS का internet किसी काम का नहीं है 100 MBPS की speed मिलेग�
11:03
so I hope कि आप यह बात समझ चुके हो अभी कि server की भी speed होती ह�
11:06
और क्यूंकि हर server की अपनी-अपनी speed होती है it's better to hit servers parallelly
11:11
आप 5 के 5 servers या 10 के 10 servers को parallelly hit करोग�
11:15
ताकि आपकी पूरी इंटरनेट स्पीड यूज हो और उन सर्वर्स पर लोड पड़�
11:19
ठीक है आप पैलली लोड डाल देते हो पांचो सर्वर्स पे पांच अलग अलग सर्वर्स पे डालोगे अग�
11:24
तो वो जो स्पीड आपको मिलने वाली है उतनी मिलेगी और आपका इंटरनेट fist तो आप जो है इसमें फायदे में रहोगा ऐसा करने में ठीक है स्वागत यह समझ में �
11:32
गई सब लोगों को अब थोड़ा सा मिस्लेनियस जाते हैं शायद आप में से लोग बुरा भी मनोगे इस बात का यार इतन�
11:38
कटिन क्यों कर दिया इतना अच्छा तो चल रहा था देखो यार कटिन करना थोड़ा सा मुझे पड़ेगा कि मैं यहां प�
11:43
आप लोगों को बनाने है वह अच्छा वाइटन डेवलपर एक छोटा-मोटा पाइट डेवलपर बने नहीं आए हो अब यहां पर ठीक ह�
11:48
मैं आपको बता दूं पहले अगर आप आए हो तो आप गलत जगह पर मैं आपको यह अच्छा पाइटन डेवलवर बनाने के लिए आपको कॉनकरेंट और फ्यूचर्स के बारे में बताऊंगा कॉनकरेंट और फ्यूचर्स जो होता है ना यह मुझे क्यों बोल रहा है कि मैं �
12:18
देखो होता क्या है कि मैंने तरह काम करता हूं इसको नेक फंक्शन के अंदर डालता हूं यह डेफ फंक था और इसको मै�
12:25
डेफ मेन के अंदर डालता हूं ठीक है और मैं में को कॉली नहीं करूंगा तो इसको एक फंक्शन के अंदर डालते तो मे�
12:32
नाम के अभी यहां पर डेफ पूलिंग डेमो के नाम से मैं एक फंक्शन मनाता हूं और ऑब्जीटी में इसको कॉल भ�
12:40
करूंगा पूलिंग डेमो को ठीक है कुछ इस तरह से आप लोग देखो मैं यहां पर क्या कर रहा हूं मैं थ्रेडपूल एक्स�
12:46
इस्तेमाल कर रहा है थ्रेडपूल एक्सीविटर में कहां से इंपोर्ट करूंगा मैं इंपोर्ट करूंगा कॉनकरण डॉ�
12:51
फ्यूचर्स ठीक है तो मैं कहूंगा फ्रॉम कॉनकरण डॉट फ्यूचर्स फ्रॉम कॉनकरण डॉट फ्यूचर्स इंपोर्ट थ्रेडपू�
13:00
एक्सेक्यूटर टीए तो ट्रेड बुल एक्सेक्यूटर क्या करता है कि जब बल्क में बहुत सारे यहां पर टास्�
13:06
चीज रिविडेंट चाहते तो उसमें आपको मदद देता है अब देखो इन्होंने यहां पर काई की एक्सेक्यूटर डॉ�
13:26
यह 3 2 और 5 कर देता हूँ यहाँ पर ठीक है चार कर देता हूँ ठीक है चलेगा अब मैं यहाँ पर क्या कर रहा हूँ अब यह क्या return कर रहा है कुछ यह कुछ return नहीं कर रहा है यह बस print कर रहा है बट ठीक है मैं एक काम करते हैं इसको run करता हूँ देखो sleeping for 3 seconds हुआ और इसके �
13:56
यहाँ पर भी 1, 2, और 2 और 3 कर दूँ, और मैं इनके results को जो है
14:03
बाद में यहाँ पर, देखूं, तो देख सकते हैं आप लोग, यहाँ पर मैं इसको run करूँगा
14:08
तो सबसे पहले तो 3 seconds, यह सब के सब एक साथ 4 seconds में हुए
14:13
ठीक है, और उसके बाद, इनके जो results हैं वो मुझे मिल गई एक साथ ठीक है तो इस तरह से आप thread pool executor का इस्तेमाल कर सकते ह�
14:20
अब thread pool executor को इस्तेमाल करने का एक और syntax है जो की है map function वो बहुत मददार syntax है या�
14:26
और मैं आपको remeber की काफी बढ़िया लगता है वो मुझे उसका reason ये है कि यार बहुत अच्छी तरह से आप लोग जो ह�
14:34
schedule कर सकते हो चीजों का इसमें मैं देख रहा हूं कि कुछ इनके पास अगर example हुआ अच्छा सा तो मजा आएगा अब देख�
14:41
यहाँ पर एक्सेक्यूटर डॉट मैप और यहाँ पर फंक्शन दे दो यहाँ पर जो है आप क्या करो कि आई ट्रेबल की लिस्ट दे दो मैं आपको दिखाता हूं कि क्या कहने का मतलब है मेरा मालों मेरे पास एक लिस्ट नंबर की ए�
14:51
इस एकवल टू थ्री फाइव सिक्स और टू ठीक है थ्री फाइव वन और टू कर देता हूं इसको ठीक है अब इन मोस्ट आफ �
15:00
केसे आपके बाद इस तरह की लिस्ट रहीगी क्योंकि कभी भी आप यू आरेल से डाउनलोड करना चाहे वह चीजों को तो आ�
15:07
कोई पास ऐसा नहीं है कि एक-एक करके आप यह लिखते रहोगे अगर 1000 यूआरल्स है तो आपके पास एक लिस्ट रही है आज आ�
15:13
और इसकी ना कि आप एक करके यूअरल वन यूअरल टू यूअरल थे यूअरल एंड लिखोगे इतना बड़ा को तो ना बनाओगा आपको आप यहां प�
15:20
कर सकते हो आप कह सकते हो रिजल्ट्स इस इक्वल टू एक्सीक्यूटर डॉट मैप और आप कह सकते हो कि मैं जो फंक फंक्शन है ना वह लगान�
15:29
जाता हूं एल में ठीक है और इसके बाद जब मैं यह चीज करूंगा अभी करें रिजल्ट इज आईन बट नेवर यूज अब मै�
15:36
कह सकता हूं फॉर रिजल्ट इन रिजल्ट और मैं यहां पर क्या कर सकता हूं प्रिंट कर सकता हूं रिजल्ट ठीक है त�
15:44
आप लोग को यहां पर दिखाता हूं कि अगर मैं कुछ रिटर्न भी कर रहा हूं इस समालों मैं रिटर्न कर रहा हूं सेकंड स�
15:48
तो वह रिटर्न वैल्यू भी मुझे मिल जाएगी तो देखो मैं इसको रन करूंगा जैसे ही आप देखो यहां पर इसने एक सा�
15:54
पांच सेकंड में ये सारे के सारे एक साथ चलाना शुरू कर दिये वोलब schedule कर दिये एक सा�
15:59
और उसके बाद जैसे ऐसे इनके results आते गाए वैसे वैसे ये मुझे print करके देता जा रहा है तो parallel execution के लि�
16:04
ये module बहुत साधा जरूरी है अगर आप लोग concurrent.futures को इस्तेमाल करते हो तो थोड़ा सा easy हो जाता ह�
16:10
बट जो हमारे basics है threading के वो यहाँ पर मैंने cover कर दिया है threading module स�
16:15
बट आप लोग अगर real world में इस्तेमाल करना जाता है इस चीज को तो मैंने आप लोगों को बता दिया कि आप लोग concurrent और futures model क Collective
16:22
से use कर सकते हो क्योंकि वह सबसे ज्यादा important है आप लोगों के लिए real life
16:26
projects बना पाओ आप लोग ना कि यह कि आपको बस मैंने कुछ बता दिया आपने देख लिय�
16:30
देख लिया ताली बजा दी मजा आ गया ठीक है नहीं इसलिए इतना ही नहीं आप लोग को अगर रियल वर्ड में डाउनलोड करने की जरूरत पड़ जाती है 50 URL से एक साथ 500 URL से एक साथ आपके एक प्रोजेक्ट का पार्ट है 50 URL को डाउनलोड करना 500 URL को डाउनलोड करना तब �
17:00
लाट यहां पर हंड्रेड डेज ऑफ कोड हिंदी यहां पर आप लिख करोगे अंडर डेज ऑफ कोड हिंदी में पहुंच जाओगे त�
17:07
यहां पर कुछ इस तरह से देखता है काफी बढ़िया यह इंटरफेस बनाया इन्होंने तो आप यह जो लिंक है इसको यहां प�
17:13
पर जाकर आपको मिल जाएगा 100 days of code I hope कि आप लोगों को मज़ा आ रहा ह�
17:16
100 days of code python series में और हम almost ख़तम करने वाले हैं यार इस course क�
17:21
बहुत ज़ादा excitement बढ़ रहा है अभी के लिए इस वीडियो में इतना ही guys
17:25
Thank you so much guys for watching this video and I will see you