परिचय
मल्टी-थ्रेडिंग की स्थिति में, एक थ्रेड शेड्यूलर थ्रेड्स को उनकी प्राथमिकता के आधार पर विशिष्ट प्रक्रियाओं को असाइन करता है। एक Java थ्रेड एक पूर्व-असाइन प्राथमिकता के साथ आता है। इसके अलावा, Java वर्चुअल मशीन थ्रेड्स को प्राथमिकता भी दे सकती है या प्रोग्रामर्स द्वारा स्पष्ट रूप से दी जा सकती है। थ्रेड की प्राथमिकता के लिए मानों की सीमा 1 और 10 (सम्मिलित) के बीच होती है। प्राथमिकता से जुड़े तीन स्टेटिक वेरिएबल हैं -
- MAX_PRIORITY - एक थ्रेड की अधिकतम प्राथमिकता, जिसका डिफ़ॉल्ट मान 10 है।
- NORM_PRIORITY - एक थ्रेड की डिफ़ॉल्ट प्राथमिकता, जिसका डिफ़ॉल्ट मान 5 है।
- MIN_PRIORITY - एक थ्रेड की न्यूनतम प्राथमिकता, जिसका डिफ़ॉल्ट मान 1 है।
Java में 'getPriority()' मेथड इससे बंधे थ्रेड की प्राथमिकता को मान के रूप में वापस करने में मदद करता है।
'setPriority()' मेथड दिए गए थ्रेड की प्राथमिकता मान को बदलता है। यह IllegalArgumentException फेंकता है जब थ्रेड प्राथमिकता 1 से कम या 10 से अधिक होती है।
उदाहरण
import java.lang.*;
public class Demo extends Thread{
public void run(){
System.out.println("अब, रन मेथड के अंदर");
}
public static void main(String[] args){
Demo myThr1 = new Demo();
Demo myThr2 = new Demo();
System.out.println("पहले थ्रेड की थ्रेड प्राथमिकता है: " + myThr1.getPriority());
System.out.println("दूसरे थ्रेड की थ्रेड प्राथमिकता है: " + myThr2.getPriority());
myThr1.setPriority(5);
myThr2.setPriority(3);
System.out.println("पहले थ्रेड की थ्रेड प्राथमिकता है: " + myThr1.getPriority());
System.out.println("दूसरे थ्रेड की थ्रेड प्राथमिकता है: " + myThr2.getPriority());
System.out.print(Thread.currentThread().getName());
System.out.println("मेन थ्रेड की थ्रेड प्राथमिकता है: " + Thread.currentThread().getPriority());
Thread.currentThread().setPriority(10);
System.out.println("मेन थ्रेड की थ्रेड प्राथमिकता है: " + Thread.currentThread().getPriority());
}
}आउटपुट
पहले थ्रेड की थ्रेड प्राथमिकता है: 5
दूसरे थ्रेड की थ्रेड प्राथमिकता है: 5
पहले थ्रेड की थ्रेड प्राथमिकता है: 5
दूसरे थ्रेड की थ्रेड प्राथमिकता है: 3
मेन थ्रेड की थ्रेड प्राथमिकता है: 5
मेन थ्रेड की थ्रेड प्राथमिकता है: 10Demo नाम की एक क्लास बेस क्लास Thread से इनहेरिट करती है। 'run' फ़ंक्शन परिभाषित किया गया है और एक प्रासंगिक संदेश परिभाषित किया गया है। मुख्य फ़ंक्शन में, Demo क्लास के दो इंस्टेंस बनाए जाते हैं और 'getPriority' फ़ंक्शन को कॉल करके उनकी प्राथमिकताएं पाई जाती हैं।
उन्हें कंसोल पर प्रिंट किया जाता है। अगला, Demo इंस्टेंस को 'setPriority' फ़ंक्शन का उपयोग करके प्राथमिकता असाइन की जाती है। आउटपुट कंसोल पर प्रदर्शित होता है। 'getName' फ़ंक्शन की मदद से थ्रेड्स के नाम स्क्रीन पर प्रिंट होते हैं।