Multithreading in Java
312 views
Feb 12, 2024
The "Multithreading in Java" video introduces the concept of multithreading and explains how it is implemented in Java. Multithreading allows programs to execute multiple tasks concurrently, improving performance and responsiveness. This video covers topics such as creating and managing threads, synchronization, thread lifecycle, and thread pooling. Through clear explanations and practical examples, viewers learn how to leverage multithreading to write efficient and responsive Java applications. This tutorial serves as a valuable resource for learners seeking to understand and implement multithreading in Java programming.
View Video Transcript
0:00
अजय को जगह आज के इस वीडियो में हम लोग मल्टी थ्रेडिंग को देखने वाले हैं कि क्या होती है मल्टी थ्रेडिं��
0:06
और जावा में इस चीज को कैसे अच्छी करना है और क्यों अच्छी करना है कि यार मल्टी थ्रेडिंग को मैं क्यों अच्छ��
0:11
चाहूंगा जब मेरी जिंदगी इतनी अच्छी चल रही है बाकी जो मेरी ट्रेडिशनल जावा के फॉर लूप वाइल लूप औ��
0:17
बाकी कंस्ट्रक्ट जो मैंने पड़े हैं उनकी साहिता से तो मैं मल्टी थ्रेडिंग को क्यों इस्तेमाल करना चाहूंग��
0:22
मैं आप लोगों एक जामपल देना चाहूँगा एक रेस्टोरंट का ठीक है मान लो कि एक रेस्टोरंट है ठीक है उस रेस्टोरंट में आपके वेटर्स हैं ठीक है और वो वेटर्स अलग-अलग लोगों को जो है सर्व कर रहे हैं कहने की सर आप क्या लेंगे आप क्या लें��
0:52
एक ही वेटर है आपके बाद आपको इतनी का अभिलियत वाला वेटर मिल गया है जो कि आपका बहुत सारा काम कर सकत��
0:58
है मान लो उसने एक ओडर लिया ठीक है एक ओडर पर वह गया एक टेबल पर गया और उसने एक ओडर लिया तो यहां प��
1:05
बदली से बना लेता हूं एक आपका रेस्टोरांट तो मान लो यह आपका रेस्टोरांट है यहां पर आर लिख देता हूं और इसक��
1:12
अंदर जो है एक वेटर है इसका नाम रख देगा डब्ली वन या इस वेटर का नाम यार कोई अच्छा सा रख देते हैं डब्ली व��
1:18
इसको सूट नहीं कर रहा है इसका नाम रख देते हैं शुबांकर ठीक है तो मैंने इसका नाम रख देते है शुबांकर तो इस वेटर का नाम शुबांकर है और यहाँ शुबांकर एक ऐसा इंसान है width की बहुत तेज काम करता है मतलब कि यार आपने शुबांकर को वह दस काम ��
1:48
पस्तामर कहते हैं मुझे खानी है रोटी एक कहता है मुझे खानी है चाव मिन एक आता है कि मुझे मिलक शेक पीना है और एक और आ जाता है वह कहता है कि मुझे खाना है पनीर बटर मसाला वह भी तंदूरी रोडी के साथ ठीक है यह सारे का सारे लोग आ जाते हैं और अलग ��
2:18
फिर शुबांकर किचन में जाएगा, क्या शुबांकर T1 का order लेकर किचन में जाएगा, और वेट करेगा जब तक T1 का order नहीं बन जाता, और उसके बाद T1 को दे देगा, order की सर आपका बन चुका है, फिर T2 के पास जाएगा, फिर T2 का जो order है, वो किचन में ले कर जाएगा, ��
2:48
और उसके बाद T4 के पास जाएगा अगर वो ऐसा करता है तो देखो कोई इसमें प्रॉब्लम नहीं ह��
2:53
पस प्रॉब्लम यह है कि सबका time waste होगा इससे better approach क्या हो सकता ह��
2:58
इससे better approach यह हो सकता है कि जो kitchen में हमारे chef बाबू बैठे हु��
3:02
chef बाबू chef बाबू शेव बाबू यह बोलेंगे कि यार तू जो है शुमांकर से बोलेंगे शुमांकर यार तू इतना तेज़ आदमी है तू इतनी तेज़ दोड़ सकता है इतनी तेज़ तू इतने सारे डिशेस एक साथ कैरी कर सकता ह��
3:15
तो ऐसा क्यों नहीं करता कि आ तू T1 के पास जा T1 का order लाके मुझे द��
3:20
और उसके बाद मेरे उपर छोड़ दे जैसे T1 का order बन जाएगा मैं तुरको बोल दूँग��
3:24
तू T2, T3, T4 का भी order लेके मेरे पास आ और जैसे ऐसे लोग आते जा रहे है��
3:28
तू उनका order मेरे पास लेकर आता जा P2 T4 spelling
3:42
अनियन मन लो फ्राई करनी पड़ रही है तो क्या होगा कि अनियन को सिर्फ एक बार फ्राई करेगा ठीक ह��
3:47
अनियन फ्राई सिर्फ एक बार करनी पड़ेगी शेव बाबू को तो शेव बाबू कह रहे हैं या शुमागर तू सबके order एक साथ ले कर ��
3:55
यानि कि तू पैलली सबके order ले कर आ और मुझे दे ठीक ह��
4:00
तू वेट मत कर तू वेट मत कर यहाँ पर एक order के लिए क्योंकि तू तरह टाइम में दूसरे orders ला सकता ह��
4:06
तो तू अपना time waste मत कर यहाँ дорогi इसी तरह से कुछ multi threading का construct भी ह��
4:10
java programming के अंदर देखते हैं यहाँ बार notes मैंने बना लिखे हैं आप लोगों के लिए कि क्य��
4:15
मैंने यहाँ बार लिखा है notes में तो देखो यहाँ बार multi processing और multi threading both are used
4:21
to achieve multitasking, ठीक है, तो देखो, multitasking एक चीज़ है, multiprocessing एक चीज़ है
4:27
multithreading एक चीज़ है, multiuser एक चीज़ है, ठीक है, यहाँ पर हम लोग multithreading को पढ़ेंगे
4:33
ठीक है, एक brief मैं आप लोगो difference बता देता हूँ, सबसे बहले multiuser की बात कर लेते हैं
4:38
ठीक है, आपने अलग-अलग यूजर बना सकते हो टर्मिनल से लॉग इन दे सकते हो और अलग-अलग यूजर जो है एक ही टाइम पर एक ही कंप्यूट��
4:58
में लॉग इन हो सकते हैं आपने देखिए हो लिनक्स के सर्वर्स अगर आप लोग थोड़ा बहुत भी एडवांस काम करते है��
5:04
आपका जो कलीग है वो भी उसी सर्वर में काम कर रहा है और आप भी उसी सर्वर में काम कर रहे हो तो यह ए��
5:10
मल्टी टास्किंग हो गई ठीक है तो इस तरह से आप लोग जो मल्टी टास्क कर सकते हो आपका जो दोस्त है और आप ज��
5:17
एक ही सर्वर में काम करके multi processing और multi threading क्या होती ह��
5:21
multi processing मतलब एक ही operating system में अलग-अलग processes को spawn करन��
5:26
यानि कि जिसे आपर एक OS है आपका आपने अलग-अलग processes उसमें चला दिय��
5:30
मानलो आपने एक Chrome चला दिया है आपने यहाँ VS Code चला दिया ह��
5:35
फिर उसके बाद मान लो आपने यहाँ पे notepad plus plus चला दिया है उसके बाद मान लो आपने दो दीन और processes चला दिये है��
5:41
और आपका operating system उसको बहुत अच्छे से handle भी कर रहा है तीके तो यह काम जब आप करते हैं तो यह है multi processing
5:48
अब यहाँ पर आप मुझे एक बात जरा बताओ कि अगर मान लो कि आपको एक process के अंदर ही multitasking करनी ह��
5:55
एक process के within जैसे कि एक chrome tab है ठीक है इस chrome tab में मैं चाहता हू��
6:01
कि जो मेरे data है background से pull होकर आता रहे या फिर एक और example में लेता हू��
6:06
कि यह जो tab है मान लो इन ओर्डर टू इंप्रूव को यह टाब मेरा डेटा प्रोम सर्वर्स को भेज रही है ठीक है अगर वह ऐसा कर रही ह��
6:15
तो क्या वह मुझे यह पीडीएफ दिखा सकती है एड एड देटा भेज सकती है हां भेज सकती है विदिन अ प्रोसेस मुझ��
6:24
टास्किंग करनी है तो जब मुझे विदेन आप प्रोसेस मल्टी टास्किंग करनी है तो मैं यूज करता हूं थ्रेड्स को त��
6:30
थ्रेड्स जो होते हैं वह प्रोसेस का हिस्सा होते हैं और एक प्रोसेस की मेमोरी को शेयर करते हैं ठीक है थ्रेड्��
6:37
होते हैं वह लाइट वेट होते हैं प्रोसेस जो होती है वह है वेट होती है तो कभी-कभी हम लोग प्रोसेस क��
6:42
स्पाउन करना भी थ्रेड के कंपैरेजन में ज्यादा प्रिवर्ट करते हैं बट डाइट इमेंट्स अपने सिचुएशन औ��
6:49
operating systems का topic है, तो यहाँ पर हम लोग बहुत जादा इसमें नहीं गुसेंगे
6:53
क्योंकि हम लोग जितना जादा इसको dig करेंगे, उतनी चीज़े निकल के आएंगे, interrupt क्या होता है
6:59
और उसके बाद inter-thread communication कैसे होता है, तो गुल मिला के बताओं
7:03
तो ये topic अपने आपने एक बहुत बड़ा topic है java part operating system operating system good for them
7:17
तो in a nutshell क्या है थ्रेड जो है वो shared memory area
7:20
use करते हैं process का और threads जो है उसमे context switching faster होती है थ्रे��
7:26
एक दूसरे से बहुत fast interact कर सकते हैं तो होता क्या है क��
7:30
जब आपके operating system में बहुत जारी resources हैं मान लो CPU
7:34
है आपके computer में और वो बहुत powerful CPU है आपके computer में RAM लगी हुई ह��
7:38
आपके computer में fast storage है और आप लोगों ने एक process के अंद��
7:42
अलग-अलग threads जो हैं वो चला के run कर रखे हैं तो आपका जो CPU है सबसे वाले एक thread क��
7:46
attend करेगा कि आर तुम क्या कह रहे हो और उसके बाद दूसरी thread को attend करेगा फिर एक को फिर दूसरे को कुछ ऐसा समझ ल��
7:52
तो कि आपके घर में आपकी मम्मी रोटिया बना रही है और आपको और आपके भाई दोनों को खिला रही है रोटी आपको दी फिर उसके बाद रोटी बन��
7:58
आपके भाई को दी, फिर एक रोटी आपको दी, आपके भाई को दी, ऐसा लगेगा आपको कि आपकी ममी सिर्फ आपको रोटीयां खिला रही है
8:04
और आपके भाई को भी लगेगा, सिर्फ आपको रोटियें खिला रही हैं, कोई प्रॉब्लम उनको नहीं होग��
8:07
उसी जरा CPU जो है, वो threads को अटेंड करता है, और processes क��
8:11
भी in fact ऐसे ही अटेंड करता है तो जो threads होते हैं, व��
8:15
shared memory area यूज़ करते हैं, उसमें context switching बहुत ज़्यादा fast होती ह��
8:20
और thread lightweight होता है process heavyweight होती है यह एक brief में difference between thread and process ह��
8:26
एक बहुत अच्छा example आता है मेरे दिमाग में threads की जब बात होती ह��
8:30
जो word processor है उसमें एक thread हो सकता है जो key foreground में run कर रहा ह��
8:34
यानि कि आपका जो editor है वो आपका cursor आप क्या type करते है��
8:38
इन सब चीजों को अटेंड करने वाला एक thread हो सकता है, जो कि इस चीज को अटेंड करेगा
8:42
आपने P दबाया, तो आपका P जो है, आपकी screen पर आप लोगों को printed मिलेगा
8:47
आपने L दबाया, तो L आपको screen पर printed मिलेगा, and so on, और एक और thread background में काम कर सकता है
8:53
जो की auto save करेगा document को तो auto saving के लिए एक और document रहेगा background मे��
9:01
तो इस तरह से word processor के अंदर एक से ज़ादा threads होते है��
9:05
और इस तरह से वो concurrently काम करते रहते हैं अब यहाँ पर flow of control की बात करते है��
9:10
जब हम threading use नहीं कर रहे हैं और जब हम threading use कर रहे है��
9:14
क्या difference है, देखो जब हम threading use कर रहे हैं, तो आपने यहाँ पर जो आपका main method है
9:19
जो की public static void main हमने देखा था, class में होता है, जहां से हमारा program start होता है
9:25
वो program सबसे पहले, वो method आपका run होगा, उसके बाद उसके अंदर कोई function है, वो run होगा
9:30
उसके बाद यह फंक्शन जब अटेंड हो जाएगा अगर यह फंक्शन किसी आयो के लिए भी बेट कर रहा है यानि कि जैसे मान ल��
9:36
आप कोई चीज डाउनलोड कर रहे हो ठीक है मान लो आपकी वह दो जीबी की फाइल है और वह फाइल जो है वह सर्वर से डाउनलो��
9:42
हो रही है अब आपकी सीपीओ का उसमें कोई ज्यादा रोल है नहीं जब कोई फाइल डाउनलोड हो रही है तो लेकिन आपक��
9:48
पीपी फ्री होने के बावजूद भी फंक्शन टू को अटेंड नहीं कर पाएगा क्योंकि जहां पर यह जो कॉल से इन ब्लॉकिंग ह��
9:54
और आप लोगों को इनको एक-एक करके ही अटेंड करना पड़ता है तो function 1 जम कमलेट हो जाएगा तो function 2 रन होगा उसके बाद आपके प्रोग्राम का अंत हो जाएगा ठीक ह��
10:02
बट threading के साथ हम क्या कर सकते हैं हम main function को run करने के बाद function 1, function 2 इन सब को concurrently execute कर सकते है��
10:12
यानि कि function 1 जो है, वो अपने variables के साथ run हो रहा है
10:15
function 2 अपने variables के साथ parallelly run हो रहा है, और इस तरह से हम लोग execution को काफी fast कर सकते हैं
10:22
तो Java में जो है, हम लोग इस तरह से threads को इस्तेमाल कर सकते हैं
10:26
अब यहाँ पर Java में threading हम किस तरह से करेंगे, ये भी देख लेने हैं तो जावा में अगर आप लोगों को threads create करने हैं तो दो तरह के methods हैं आप लोगों के बास primarily
10:37
method thread class extend runnable interface implement thread
10:53
thread class को extend कर सकते हैं ठीक है या फिर आप क्या कर सकते है��
10:57
एक runable interface होता है java के अंदर आप उसको extend कर सकते है��
11:00
sorry implement कर सकते हैं ठीक है आपका जब runable interface implement
11:05
होगा तब आप लोगों को वो concurrent execution जो thread में होता है वो आप लोगो��
11:11
मिलेगा यानि कि आपका काम जो है अब काफी speed में होने लगेगा तो इस तरह से हम लोग जो है दो तरीके है ये thread को बनाने के java मे��
11:19
बट हम लोग यहाँ पर जो है इनको एक एक करके भी देखेंगे अभी के लिए I hope आप लोग ये जी समझ गए है क��
11:25
multi threading का काम क्या है multi threading का काम यही है कि अगर आपके बा��
11:29
बहुत सारी power है आपके बाद बहुत सारा compute है तो आपका जो CPU ह��
11:33
या मेरा अगर आपका computer में एक से ज़ादा भी CPU है तो वो एक से ज़ाद��
11:37
thread को attend कर सकते हैं और आप लोग को एक faster execution
11:41
प्रदान कर सकते हैं हो गया है कि यार मल्टी थ्रेडिंग क्यों यूज करना है अब मल्टी प्रोसेसिंग अगर आप लोग यूज करते हो आप में स��
12:01
लोग कह सकते हो कि यार अगर हम लोग एक मल्ट एक पूरी इंडिपेंडेंट प्रोसेस ही रन कर दें थ्रेड क्यों रन करे��
12:06
के अंदर तो कैसा रहे तो देखो यार प्रॉसेस को रन करना है वेट होता है वेट का क्या मतलब वेट के य��
12:13
मतलब है कि इसकी अपनी मेमोरी होगी इसकी जो रिसोर्सेस की रिक्वायरमेंट है वह थोड़ी सी ज्यादा होग��
12:19
तो हम लोग कभी-कभी प्रोसेस को अलग-अलग तरह से स्पाउन नहीं करते हैं अगर हम प्रोसेस प्रोसेस को स्पाउ��
12:25
करने लग गए तो क्या होगा आप आउट ऑफ रिसोरस बहुत जल्दी रन कर सकते हो इसलिए हम लोग एक प्रोसेस के अंद��
12:31
multitasking करते हैं, हम कहते हैं, within a process हम multitask करना चाहते हैं, तो हमें वो प्रदान कर दो, ठीक है, तो within a process अगर हम multitask करते हैं, तो वो lightweight होता है, in comparison to अगर हम अलग-अलग processes run करें, ज़रा सोचो आप लोग की, अगर मान लो आप लोग का एक restaurant है, ठीक है, आप लोग कहते हो कि यार मुझे ��
13:01
पड़ेंगे establish करने के लिए restaurant को जो कि आपने अपने पुराने वाले restaurant में करी ह��
13:07
तो आप लोग चाहेंगे कि आपका जो restaurant है पुराना वाला आप उसी मे��
13:13
waiters को बढ़ाएं यानि कि आप threads को spawn करें राज़ा दिन आ��
13:17
एक नया restaurant ही बना लें अब ऐसा नहीं है कि आप लोग को कभी भी processes को spawn नहीं करते हो
13:22
processes को भी आप लोग spawn करते हो, but अगर आप लोग को light weight independent execution चाहिए
13:29
एक ही process के अंदर तो हम threads को इस्तेमाल करते हैं, कैसे Java में इस चीज़ को करेंगे
13:33
हम लोग देखने वाले हैं आने वाले वीडियो में, I hope कि आप लोगों समझ में आ गया है यहाँ पर जो मैं आप लोगों को बताना चाहता थ��
13:39
अगर आप लोग इस वीडियो को बीच से देख रहे हैं और आपको नहीं पता कि एक course भी exist करता ह��
13:43
तो आप लोग इस playlist को access कर लेना link is in the description यहाँ पर मैंने सब कुछ बता रखा है आप लोगों क��
13:49
जावा के बारे में अगर आप लोगों कुछ भी नहीं आता है इन फैक्ट अगर आप लोग एक प्रोग्रामिंग बिगिनर भी है तब भी आप लोग इस course क��
13:55
विडियो को स्टार्ट कर सकते हैं और इस रेवल तक पहुंच सकते स्वभी के लिए इस वीडियो में इतना ह��
13:59
गैस थैंक यू सो मच गैस वॉचिंग इस वीडियो एड एविल सी यू नेक्स्ट टाइम ��
#Java (Programming Language)
#Programming