Thread.onSpinWait()৷ পদ্ধতিটি জাভা 9 এ চালু করা হয়েছে। এটি একটি স্ট্যাটিক থ্রেড এর পদ্ধতি ক্লাস এবং ঐচ্ছিকভাবে ব্যস্ত-অপেক্ষায় কল করা যেতে পারে loops এটি JVM কে কিছু সিস্টেম আর্কিটেকচারে প্রসেসরের নির্দেশনা জারি করার অনুমতি দেয় এই ধরনের স্পিন-ওয়েট এ প্রতিক্রিয়ার সময় উন্নত করতে। loops, এবং মূল থ্রেড দ্বারা খরচ শক্তি কমাতে. এটি একটি জাভা প্রোগ্রামের সামগ্রিক বিদ্যুত খরচকে উপকৃত করতে পারে এবং অন্যান্য মূল থ্রেডগুলিকে একই পাওয়ার খরচ খামের মধ্যে দ্রুত গতিতে কার্যকর করার অনুমতি দেয়৷
সিনট্যাক্স
public static void onSpinWait()
উদাহরণ
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 abstract static class Task implements Runnable { volatile boolean canStart; void start() { this.canStart = true; } } private static class NormalTask extends Task { @Override public void run() { while(!this.canStart) { } System.out.println("Done!"); } } private static class SpinWaitTask extends Task { @Override public void run() { while(!this.canStart) { Thread.onSpinWait(); } System.out.println("Done!"); } } }
আউটপুট
Done! Done!