Kaedah
Thread.onSpinWait() telah diperkenalkan di Java 9. Ia adalah kaedah statik kelas Thread yang boleh dipanggil secara pilihan dalam gelung menunggu yang sibuk. Ia membolehkan JVM mengeluarkan arahan pemproses pada seni bina sistem tertentu untuk meningkatkan masa tindak balas gelung tunggu putaran tersebut dan mengurangkan penggunaan kuasa benang teras. Ia boleh meningkatkan penggunaan kuasa keseluruhan program java dan membenarkan utas teras lain untuk melaksanakan lebih pantas dalam julat penggunaan kuasa yang sama. Terjemahan bahasa Cina bagi
<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>
Atas ialah kandungan terperinci Apakah kepentingan kaedah Thread.onSpinWait() dalam Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!