Heim >Java >javaLernprogramm >Welche Bedeutung hat die Thread.onSpinWait()-Methode in Java 9?
Die Methode
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
<strong>public static void onSpinWait()</strong>
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!"); } } }
<strong>Done! Done!</strong>
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!