第
Java9中Thread.onSpinWait()方法的重要性是什么?
publicstaticvoidonSpinWAIt()
Example的中文翻译为:
publicclassThreadOnSpinWaitTest{
publicstaticvoidmain(finalStringargs[])throwsInterruptedException{
finalNormalTasktask1=newNormalTask();
finalSpinWaitTasktask2=newSpinWaitTask();
finalThreadthread1=newThread(task1);
thread1.start();
finalThreadthread2=newThread(task2);
thread2.start();
newThread(()-{
try{
Thread.sleep(1000);
}catch(finalInterruptedExceptione){
e.printStackTrace();
}finally{
task1.start();
task2.sta*rt();
}).start();
thread1.join();
thread2.join();
privateabstractstaticclassTaskimplementsRunnable{
volatilebooleancanStart;
voidstart(){
this.canStart=true;
privatestaticclassNormalTaskextendsTask{
@Override
publicvoidrun(){
while(!this.canStart){
System.out.println(Done!
privatestaticclassSpinWaitTaskextendsTask{
@Override
publicvoidrun(){
while(!this.canStart){
Thread.onSpinWait();
System.out.println(Done!
}
Done!
Done!
以上就是Java9中Thread.onSpinWait()方法的重要性是什么。