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

जावा संगामिति - उपज () विधि

उपज फ़ंक्शन

फ़ंक्शन यह सुनिश्चित करने का प्रयास करता है कि जो थ्रेड अधिक महत्वपूर्ण है, वह थ्रेड के बजाय पहले चलता है जो निष्पादित होने में बहुत अधिक समय ले रहा है और महत्वपूर्ण भी नहीं है।

जब थ्रेड java.lang.Thread.yield विधि को कॉल करता है, तो यह थ्रेड शेड्यूलर के निष्पादन को रोकने के लिए एक संकेत है। थ्रेड शेड्यूलर इस संकेत को स्वीकार या अनदेखा करना चुनता है।

यदि थ्रेड 'यील्ड' फ़ंक्शन निष्पादित करता है, तो शेड्यूलर यह देखने के लिए जांच करता है कि समान या उच्च प्राथमिकता वाला थ्रेड मौजूद है या नहीं। यदि ऐसा है, तो वर्तमान थ्रेड को चलाने योग्य या तैयार स्थिति में ले जाया जाता है और उस थ्रेड को प्रोसेसर संसाधन दिए जाते हैं।

उपज फ़ंक्शन का सिंटैक्स -

public static native void yield()

आइए एक उदाहरण देखें -

उदाहरण

import java.lang.*;
class Demo extends Thread{
   public void run(){
      for (int i=0; i<3 ; i++)
      System.out.println("In control of " + Thread.currentThread().getName() + " thread");
   }
}
public class Demo_one{
   public static void main(String[]args){
      Demo my_obj = new Demo();
      my_obj.start();
      for (int i=0; i<3; i++){
         Thread.yield();
         System.out.println("In control of " + Thread.currentThread().getName() + " thread");
      }
   }
}

आउटपुट

In control of main thread
In control of main thread
In control of main thread
In control of Thread-0 thread
In control of Thread-0 thread
In control of Thread-0 thread

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

  • एक बार जब थ्रेड ने यील्ड विधि का उपयोग करके निष्पादन पूरा कर लिया है, तो कई थ्रेड्स हैं जो प्रोसेसर संसाधनों के लिए प्रतिस्पर्धा करते हैं। यह निर्दिष्ट करने का कोई तरीका नहीं है कि कौन सा थ्रेड पहले निष्पादित होगा।

  • एक बार जब थ्रेड यील्ड मेथड को एक्जीक्यूट कर लेता है, तो यह रनिंग स्टेट से रननेबल स्टेट में चला जाता है।

  • यील्ड मेथड का इस्तेमाल तभी किया जा सकता है जब प्लेटफॉर्म प्री-इम्पेक्टिव शेड्यूलिंग को सपोर्ट करता हो।

  • जब थ्रेड अपने निष्पादन के दौरान रुक जाता है, तो यह सुनिश्चित करने का कोई तरीका नहीं है कि उसे जल्द या बाद में मौका मिलेगा, यह सब शेड्यूलिंग एल्गोरिथम और थ्रेड शेड्यूलर पर निर्भर करता है।


  1. जावा में अज्ञात वर्ग का उपयोग करके धागा कैसे बनाएं?

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

  1. जावा में isDaemon () विधि का महत्व?

    डेमॉन थ्रेड एक निम्न-प्राथमिकता वाला थ्रेड . होता है जावा में जो पृष्ठभूमि में चलता है और ज्यादातर जेवीएम द्वारा कचरा संग्रह (जीसी) जैसे पृष्ठभूमि कार्यों को करने के लिए बनाया गया है। यदि कोई उपयोगकर्ता थ्रेड नहीं चल रहा है तो JVM बाहर निकल सकता है, भले ही डेमॉन थ्रेड चल रहे हों। डेमॉन थ्रेड का एकम

  1. जावा 8 में इंटरफ़ेस एन्हांसमेंट

    जावा 8 इंटरफेस में डिफ़ॉल्ट विधि कार्यान्वयन की एक नई अवधारणा पेश करता है। इस क्षमता को पश्चगामी संगतता के लिए जोड़ा जाता है ताकि पुराने इंटरफेस का उपयोग जावा 8 की लैम्ब्डा अभिव्यक्ति क्षमता का लाभ उठाने के लिए किया जा सके। उदाहरण के लिए, सूची या संग्रह इंटरफेस में प्रत्येक के लिए विधि घोषणा नहीं ह