- 線程可以有自己的優(yōu)先級(jí),優(yōu)先級(jí)高的線程在競(jìng)爭(zhēng)資源時(shí)會(huì)更有優(yōu)勢(shì),但是這不是絕對(duì)的。
- Java線程優(yōu)先級(jí)整型成員變量priority來標(biāo)識(shí),范圍從1到10,數(shù)字越大優(yōu)先級(jí)越高。其中有三個(gè)靜態(tài)標(biāo)量:
public final static int MIN_PRIORITY = 1;
public final static int NORM_PRIORITY = 5;
public final static int MAX_PRIORITY = 10;
以下代碼可以展示優(yōu)先級(jí)高的線程傾向于更快完成:
package temp;
public class PriorityDemo {
public static class HighPriority extends Thread{
static int count = 0;
public void run() {
while(true) {
synchronized(PriorityDemo.class){
count++;
if(count > 10000000) {
System.out.println("HighPriority is complete!");
break;
}
}
}
}
}
public static class LowPriority extends Thread{
static int count = 0;
public void run() {
while(true) {
synchronized(PriorityDemo.class) {
count++;
if(count > 10000000) {
System.out.println("lowPriority is complete!");
break;
}
}
}
}
}
public static void main(String[] args) throws InterruptedException{
Thread high = new HighPriority();
LowPriority low = new LowPriority();
high.setPriority(Thread.MAX_PRIORITY);
low.setPriority(Thread.MIN_PRIORITY);
low.start();
high.start();
}
}