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

Java9 में Thread.onSpinWait () विधि का महत्व?


Thread.onSpinWait() विधि जावा 9 में पेश की गई है। यह एक स्थिर . है थ्रेड . की विधि कक्षा और वैकल्पिक रूप से व्यस्त-प्रतीक्षा . में बुलाया जा सकता है लूप। यह JVM को ऐसे स्पिन-वेट में प्रतिक्रिया समय में सुधार करने के लिए कुछ सिस्टम आर्किटेक्चर पर प्रोसेसर निर्देश जारी करने की अनुमति देता है। लूप, और कोर थ्रेड द्वारा खपत की गई शक्ति को भी कम करते हैं। यह एक जावा प्रोग्राम की समग्र बिजली खपत को लाभ पहुंचा सकता है और अन्य कोर थ्रेड्स को उसी बिजली खपत लिफाफे के भीतर तेज गति से निष्पादित करने की अनुमति देता है।

सिंटैक्स

public static void onSpinWait()

उदाहरण

public class ThreadOnSpinWaitTest {
   public static void main(final String args[]) throws InterruptedException {
      final NormalTask task1 = new NormalTask();
      final SpinWaitTask task2 = new SpinWaitTask();
      final Thread thread1 = new Thread(task1);
      thread1.start();
      final Thread thread2 = new Thread(task2);
      thread2.start();
      new Thread(() -> {
         try {
            Thread.sleep(1000);
         } catch(final InterruptedException e) {
            e.printStackTrace();
         } finally {
            task1.start();
            task2.sta*rt();
         }
      }).start();
      thread1.join();
      thread2.join();
   }
   private abstract static class Task implements Runnable {
      volatile boolean canStart;
      void start() {
         this.canStart = true;
      }
   }
   private static class NormalTask extends Task {
      @Override
      public void run() {
         while(!this.canStart) {
         }
         System.out.println("Done!");
      }
   }
   private static class SpinWaitTask extends Task {
      @Override
      public void run() {
         while(!this.canStart) {
            Thread.onSpinWait();
         }
         System.out.println("Done!");
      }
   }
}

आउटपुट

Done!
Done!

  1. जावा संगामिति - नींद () विधि

    स्लीप फंक्शन इस स्लीप फ़ंक्शन का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि वर्तमान में निष्पादित थ्रेड एक विशिष्ट मात्रा में मिलीसेकंड के लिए सो जाता है जिसे फ़ंक्शन के पैरामीटर के रूप में पारित किया जाता है। उस मिलीसेकंड की संख्या के लिए थ्रेड निष्पादित करना बंद कर देता है। आइए एक उदाहरण देख

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

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

  1. जावा 9 में जबरन () विधि को नष्ट करने का महत्व?

    जबरन नष्ट () विधि का उपयोग किसी प्रक्रिया को समाप्त करने . के लिए किया जा सकता है . यदि प्रक्रिया समाप्त हो गई है या जमी हुई है तो इसकी आवश्यकता होगी। उदाहरण के लिए, isAlive() नष्ट करने के बाद () . के बाद विधि सही हो जाती है कहा जाता है। जबरन नष्ट () यदि समाप्ति का सफलतापूर्वक अनुरोध किया जाता है, त