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

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

王林
Lepaskan: 2023-08-21 09:25:14
ke hadapan
1039 orang telah melayarinya

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>
Salin selepas log masuk

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!");
      }
   }
}
Salin selepas log masuk

Output

<strong>Done!
Done!</strong>
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan