Rumah  >  Artikel  >  Java  >  Apakah kepentingan kaedah Thread.onSpinWait() dalam Java 9?

Apakah kepentingan kaedah Thread.onSpinWait() dalam Java 9?

王林
王林ke hadapan
2023-08-21 09:25:14984semak imbas

Kaedah

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

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

Syntax

<strong>public static void onSpinWait()</strong>

Contoh

ialah:

Contoh

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!");
      }
   }
}

Output

<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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam