Multithreading in Java

Multithreading in Java: ज्यादातर Computer Games में Graphics व Sounds का प्रयोग होता है। किसी भी Game में Graphics, Sounds व Score सभी कुछ एक साथ दिखाई देते हैं। मानलो कि Game में सबसे पहले Screen Change हो फिर Score Update हो और अन्त में Music सुनाई दे, तो Game कैसा लगेगा। जाहिर सी बात है कि ऐसा होने पर हमें Game अच्छा नहीं लगेगा। किसी भी Game के ये हिस्से एक साथ Process होते हैं। दूसरे शब्दों में कहें, तो एक Program तीन Sub-Programs में Divided है, और हर Sub Program को एक Thread द्वारा Handle किया जाता है।

जावा एक ऐसी Programming Language है, जो Multithreading Technique को Support करता है। एक ऐसा Program जिसमें कई Sub-Programs हों और हर Sub Program एक साथ Execute होता हो, Multithreaded Program कहलाता है।

Multithreading, Multitasking का ही एक विशिष्‍ट रूप है। Multitasking से हम सभी परिचित हैं। आज जितने भी Operating Systems उपलब्ध हैं, वे सभी Multitasking Operating Systems हैं। हम Multitasking को भी Process Based MultitaskingThread Based Multitasking दो भागों में बांट सकते हैं। इन दोनों के बीच का अन्तर समझना काफी जरूरी है।

किसी Computer में एक समय पर जितने भी Programs Execute हो रहे होते हैं, Operating System की भाषा में वे सभी Process कहलाते हैं। Process Based Multitasking एक ऐसा Feature है, जिसके कारण एक Computer में एक ही समय में एक से ज्यादा Programs Run हो सकते हैं।

उदाहरण के लिए जिस समय हम किसी Word Processor में Typing कर रहे होते हैं, उसी समय हम किसी Song को भी Play कर सकते हैं। Process Based Multitasking में एक Program वह Smallest Unit होता है, जिसे Operating System का Scheduler Processor पर Dispatch करके Process करता है।

Thread Based Multitasking Environment में किसी Program का एक Thread वह Smallest Unit होता है, जिसे Operating System का Scheduler Processor पर Process करने के लिए Dispatch करता है। इसका मतलब ये हुआ कि एक Single Program एक से ज्यादा Tasks को समान समय में समान रूप से Execute कर सकता है।

उदाहरण के लिए एक Song Player में Song Play हो रहा होता है, उसी समय हम किसी दूसरे Song को Song Player में अगले Song के रूप में Play होने के लिए Select भी कर सकते हैं। साथ ही Song Play होते समय ही हम Song के Tempo को भी Change कर सकते हैं और Volume को भी कम या ज्यादा कर सकते हैं। ये सभी काम Thread Based Multitasking के कारण ही सम्भव हो पाते हैं।

Multitasking Processes की तुलना में Multitasking Thread ज्यादा सरल होते हैं। Processes Heavyweight Tasks होते हैं जिन्हें Separate Address Spaces की जरूरत होती है। एक Process से दूसरे Process पर Move होना यानी Context Switching भी Costly होता है। जबकि Threads Lightweight Tasks होते हैं और एक Program के सभी Threads समान Address Space को Share करते हैं। साथ ही सभी Threads समान Heavyweight Process को भी Share करते हैं। हालांकि जावा Process Based Multitasking को Use करता है, लेकिन जावा में Process Based Multitasking Programs Develop नहीं किए जा सकते हैं, फिर भी जावा Multithreading Based Multitasking को Support करता है।

Multithreading की Techniques हमें ऐसे Programs Write करने की सुविधा देता है, जिनसे हम CPU का Maximum Use कर सकते हैं, क्योंकि इस तकनीक में Processor के Idle Time को Minimum रखा जाता है। ये व्यवस्था मुख्‍य रूप से Interactive Network Based Applications के लिए बहुत उपयोगी होती है, क्योंकि जावा उसी Environment में काम करता है, जहां Idle Time बहुत ज्यादा होता है।

उदाहरण के लिए Network पर Data के Transmission की गति CPU पर Data के Process होने की गति की तुलना में बहुत ही धीमी होती है। किसी Single Threaded Program में हमें एक Second Task के शुरू होने से पहले First Task के समाप्त होने का Wait करना पडता है, फिर चाहे CPU Idle Mode में ही क्यों ना हो। Multithreading की तकनीक हमें CPU के इस Idle time को Utilize करने की सुविधा प्रदान करता है। (Multithreading in Java)

Java Programming Language in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Java Programming Language in Hindi | Page: 682 | Format: PDF

BUY NOW GET DEMO REVIEWS