मल्टीथ्रेडिंग (Multithreading)

हम सभी आधुनिक आॅपरेटिंग सिस्टम जैसे विंडोज़ XP, 7, 8, 10 आदि को भली भांति जानते हैं। ये आॅपरेटिंग सिस्टम अनेक प्रोग्राम्स को एक साथ एक ही समय में कार्यान्वित कर सकते हैं। आॅपरेटिंग सिस्टम की यह विषेषता मल्टीटास्किंग कहलाती है।

मल्टीथ्रेडिंग एक प्रोग्रामिंग अवधारणा है। जब एक प्रोग्राम दो या दो से अधिक उप प्रोग्राम्स में बंट जाता है तो ये उप प्रोग्राम्स एक साथ समानान्तर कार्यान्वित हो सकते हैं।

वास्तव में प्रोसेसर एक समय में एक ही कार्य करता है, परन्तु वह समस्त कार्यो का विभाजन कर लेता है और उन्हे क्रमानुसार कार्यान्वित करता है। प्रोसेसर के कार्य करने की गति इतनी तीव्र होती है कि प्रयोगकर्ता को ऐसा प्रतीत होता है कि दोनों कार्य एक साथ कार्यान्वित हो रहे हैं।

जावा में ऐसे प्रोग्राम जिनमें एक समय में एक स्टेटमेन्ट ही कार्यान्वित होता है उन्हे सिंगल थ्रेडेड प्रोग्राम कहते हैं, तथा ऐसे प्रोग्राम जिनमें एक से अधिक स्टेटमेन्ट साथ-साथ कार्यान्वित हो सकते हैं उन्हें मल्टीथ्रेडेड प्रोग्राम कहते हैं। मल्टीथ्रेडेड प्रोग्राम बनाने के लिए हमें विभिन्न थ्रेड बनाने होते हैं। इन अलग-अलग थ्रेड्स में हमें समानान्तर रूप से रन कराए जाने वाले स्टेटमेंट लिखने होते हैं।

किसी प्रोग्राम में एक हैवी-वेट-थ्रेड (मेन-थ्रेड) तथा एक से अधिक लाइट-वेट-थ्रेड हो सकते हैं। उदाहरण के लिए माइक्रोसाॅफ्ट वर्ड में मेन विंडो हैवी-वेट-थ्रेड होती है तथा स्पैल चैक तथा आॅटो-सेव आदि लाइट-वेट-थ्रेड कहलाते हैं। जावा प्रोग्राम में main() मैथड भी एक थ्रेड ही होता है।

जावा में थ्रेड बनाना

जावा में मल्टीथ्रेडेड प्रोग्राम बनाने के लिए स्टेटमेन्ट्स को run( ) मैथड में लिखा जाता है तथा इस मैथड को कार्यान्वित करने के लिए start( ) मैथड का प्रयोग किया जाता है।

public void run( )
{
	Statement 1;
	Statement 2;
	.
	.
	Statement n;
}

जावा में मल्टीथ्रेडेड प्रोग्राम बनाने के लिए निम्न दो तरीकों का प्रयोग किया जा सकता है -

  • Thread क्लास को extend कर, उसके run( ) मैथड को ओवरराइड करते हुए।
  • Runnable इन्टरफेस को implement कर, उसके run( ) मैथड को ओवरराइड करते हुए।

मल्टीथ्रेडिंग के लाभ

  • यह प्रोग्रामर को एक साथ, एक से अधिक कार्य करने की अनुमति प्रदान करता है।
  • बड़े प्रोग्रामों को छोटे छोटे थ्रेड्स में विभाजित कर उन्हे एक साथ कार्यान्वित किया जा सकता है। इससे प्रोग्राम की गति बढ़ती है।
  • मल्टीथ्रेडिंग से सीपीयू आदि संसाधनों का बेहतर उपयोग संभव हो पाता है।
सुझाव / कमेंट