Heim > Java > javaLernprogramm > Welche Bedeutung hat die Thread.onSpinWait()-Methode in Java 9?

Welche Bedeutung hat die Thread.onSpinWait()-Methode in Java 9?

王林
Freigeben: 2023-08-21 09:25:14
nach vorne
1039 Leute haben es durchsucht

Die Methode

Java 9中Thread.onSpinWait()方法的重要性是什么?

Thread.onSpinWait() wurde in Java 9 eingeführt. Es handelt sich um eine statische Methode der Thread-Klasse, die optional in einer ausgelasteten Warteschleife aufgerufen werden kann. Es ermöglicht der JVM, Prozessoranweisungen für bestimmte Systemarchitekturen auszugeben, um die Reaktionszeit solcher Spin-Warteschleifen zu verbessern und den Stromverbrauch des Kern-Threads zu reduzieren. Es kann den Gesamtstromverbrauch von Java-Programmen verbessern und es anderen Kernthreads ermöglichen, innerhalb desselben Stromverbrauchsbereichs schneller auszuführen. Die chinesische Übersetzung von

Syntax

<strong>public static void onSpinWait()</strong>
Nach dem Login kopieren

Example

lautet:

Example

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 <strong>abstract </strong>static class Task implements Runnable {
      volatile boolean canStart;
      void start() {
         this.canStart = true;
      }
   }
   private <strong>static </strong>class NormalTask extends Task {
      <strong>@Override</strong>
      public void run() {
         while(!this.canStart) {
         }
         System.out.println("Done!");
      }
   }
   private <strong>static </strong>class SpinWaitTask extends Task {
      <strong>@Override</strong>
      public void run() {
         while(!this.canStart) {
            Thread.<strong>onSpinWait()</strong>;
         }
         System.out.println("Done!");
      }
   }
}
Nach dem Login kopieren

Output

<strong>Done!
Done!</strong>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWelche Bedeutung hat die Thread.onSpinWait()-Methode in Java 9?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage