Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

मल्टीथ्रेडिंग में जावा थ्रेड प्राथमिकता

मल्टी-थ्रेडिंग की स्थिति में, थ्रेड शेड्यूलर विशिष्ट प्रक्रियाओं को उनकी प्राथमिकता के आधार पर थ्रेड्स असाइन करता है। जावा थ्रेड पूर्व-निर्धारित प्राथमिकता के साथ आता है। इसके अलावा, जावा वर्चुअलमाचिन भी थ्रेड्स को प्राथमिकता दे सकता है या प्रोग्रामर द्वारा स्पष्ट रूप से दिया जा सकता है। किसी थ्रेड की प्राथमिकता के लिए मानों की सीमा 1 और 10 (समावेशी) के बीच होती है। प्राथमिकता से जुड़े तीन स्थिर चर हैं -

  • MAX_PRIORITY - एक थ्रेड की अधिकतम प्राथमिकता, जिसका डिफ़ॉल्ट मान 10 है।

  • NORM_PRIORITY - किसी थ्रेड की डिफ़ॉल्ट प्राथमिकता, जिसका डिफ़ॉल्ट मान 5 है।

  • MIN_PRIORITY - एक थ्रेड की न्यूनतम प्राथमिकता, जिसका डिफ़ॉल्ट मान 1 है।

जावा में 'getPriority ()' मेथड बाउंडेड थ्रेड की प्राथमिकता को मान के रूप में वापस करने में मदद करता है।

'सेटप्रॉरिटी ()' विधि किसी दिए गए थ्रेड के प्राथमिकता मान को बदल देती है। जब थ्रेड प्राथमिकता 1 से कम या 10 से अधिक होती है, तो यह IllegalArgumentException को फेंक देता है।

उदाहरण

import java.lang.*;
public class Demo extends Thread{
   public void run(){
      System.out.println("Now, inside the run method");
   }
   public static void main(String[]args){
      Demo my_thr_1 = new Demo();
      Demo my_thr_2 = new Demo();
      System.out.println("The thread priority of first thread is : " + my_thr_1.getPriority());
      System.out.println("The thread priority of first thread is : " +       my_thr_2.getPriority());
      my_thr_1.setPriority(5);
      my_thr_2.setPriority(3);
      System.out.println("The thread priority of first thread is : " +    my_thr_1.getPriority());
      System.out.println("The thread priority of first thread is : " + my_thr_2.getPriority());
      System.out.print(Thread.currentThread().getName());
      System.out.println("The thread priority of main thread is : " +
      Thread.currentThread().getPriority());
      Thread.currentThread().setPriority(10);
      System.out.println("The thread priority of main thread is : " +
      Thread.currentThread().getPriority());
   }
}

आउटपुट

The thread priority of first thread is : 5
The thread priority of first thread is : 5
The thread priority of first thread is : 5
The thread priority of first thread is : 3
The thread priority of main thread is : 5
The thread priority of main thread is : 10

डेमो नामक एक वर्ग को बेस क्लास थ्रेड से विरासत में मिला है। फ़ंक्शन 'रन' परिभाषित किया गया है और एक प्रासंगिक संदेश परिभाषित किया गया है। मुख्य फ़ंक्शन में, डेमो क्लास के दो उदाहरण बनाए जाते हैं और फ़ंक्शन को 'getPriority' कहकर उनकी प्राथमिकताएं पाई जाती हैं।

वे कंसोल पर मुद्रित होते हैं। इसके बाद, डेमो इंस्टेंस को 'सेटप्रॉरिटी' फ़ंक्शन का उपयोग करके प्राथमिकता दी जाती है। आउटपुट कंसोल पर प्रदर्शित होता है। थ्रेड्स के नाम स्क्रीन पर 'getName' फंक्शन की मदद से प्रिंट किए जाते हैं।


  1. जावा में थ्रेड प्राथमिकता का महत्व?

    मल्टी-थ्रेडेड एप्लिकेशन में, प्रत्येक थ्रेड को प्राथमिकता के साथ असाइन किया जाता है। प्रोसेसर को थ्रेड शेड्यूलर . द्वारा थ्रेड को असाइन किया जाता है इसकी प्राथमिकता के आधार पर यानी सर्वोच्च प्राथमिकता वाले धागे को पहले प्रोसेसर सौंपा जाता है और इसी तरह। डिफ़ॉल्ट प्राथमिकता 5 . के मान वाले थ्रेड का .

  1. हम जावा में थ्रेड को कैसे रोक सकते हैं?

    जब भी हम stop() पर कॉल करके किसी थ्रेड को रनिंग स्टेट से रोकना चाहते हैं थ्रेड . की विधि जावा में वर्ग। यह विधि चल रहे थ्रेड के निष्पादन को रोकती है और इसे प्रतीक्षा थ्रेड पूल और एकत्रित कचरे से हटा देती है। एक धागा भी स्वचालित रूप से मृत अवस्था में चला जाएगा जब वह अपनी विधि के अंत तक पहुँच जाएगा।

  1. जावा में उपयोगकर्ता थ्रेड बनाम डेमन थ्रेड?

    डेमन थ्रेड्स आमतौर पर उपयोगकर्ता थ्रेड के लिए सेवाएं करने के लिए उपयोग किया जाता है। मुख्य () विधि एप्लिकेशन थ्रेड का एक उपयोगकर्ता थ्रेड (गैर-डिमन थ्रेड) . है . JVM तब तक समाप्त नहीं होता जब तक कि सभी उपयोगकर्ता थ्रेड (गैर-डिमन) समाप्त। हम स्पष्ट रूप से एक उपयोगकर्ता थ्रेड . द्वारा बनाए गए थ्रेड