线程设置优先级与性能倒置
priority设置优先级0~10,默认5
超过报错:ThreadStateException
应用场景:游戏中同时按下大中小招数时,系统优先释放谁
package com.li.changGe.multithreading.threadState;
public class PriorityDemo01 implements Runnable{
public static void main(String[] args) {
/**
* 给普攻,招数和必杀技设置优先级
* 启动线程
*/
PriorityDemo01 priorityDemo01 = new PriorityDemo01();
Thread ordinary = new Thread(priorityDemo01,"1");
Thread tricks = new Thread(priorityDemo01,"2");
Thread nirvana = new Thread(priorityDemo01,"3");
/**
* 先设置优先级再运行
*
* NORM_PRIORITY = 5
*/
nirvana.setPriority(Thread.MAX_PRIORITY);
ordinary.setPriority(Thread.MIN_PRIORITY);
tricks.setPriority(Thread.NORM_PRIORITY);
tricks.start();
ordinary.start();
nirvana.start();
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+":"
+Thread.currentThread().getPriority());
}
}
性能倒置:cpu有时并不一定就会按照优先级来调度
原本优先级高的线程却后执行