猿问

线程的优先级


问题: 已经设置了 线程的优先级,  但输出结果为什么是这样,  是因为 电脑 是 双核的吗?


class SETPriority implements Runnable{
	public void run(){
		for(int count = 0; count < 10; count++)
			System.out.println( Thread.currentThread().getName() + count);
	}
}

public class SetPriorityDemo{
	public static void main(String[] args){
		Thread maxPro = new Thread(new SETPriority(), "MAX...");
		Thread minPro = new Thread(new SETPriority(), "min...");

		maxPro.setPriority(10);	//设置优先级 为 10
		minPro.setPriority(1);  //设置优先级 为  1

		maxPro.start();
		minPro.start();

		System.out.println("........END"); //main 线程的优先级 为 普通, 相当于 5
	}
}


下面列举 几种 输出结果 


----------------------------分割线------------------------------------


57ad4ac20001221f05000468.jpg


----------------------------分割线------------------------------------


57ad4ac300013b5905000503.jpg


Yexiaomo
浏览 2171回答 3
3回答

慕标2337738

优先级设置不是一定执行高的,只是执行的概率高,这点要清楚

慕标2337738

package practice; class SETPriority implements Runnable{     public void run(){ synchronized ("") {           for(int count = 0; count < 10; count++)             System.out.println( Thread.currentThread().getName() + count);     } } }   public class SetPriorityDemo{     public static void main(String[] args){         Thread maxPro = new Thread(new SETPriority(), "MAX...");         Thread minPro = new Thread(new SETPriority(), "min...");           maxPro.setPriority(10); //设置优先级 为 10         minPro.setPriority(1);  //设置优先级 为  1           maxPro.start();         minPro.start();           System.out.println("........END"); //main 线程的优先级 为 普通, 相当于 5     } }加锁,线程不安全。

甫艾蒽廷

每个类都有自己的优先级,一般property用1-10的整数表示,默认优先级是5,优先级最高是10;优先级高的线程并不一定比优先级低的线程执行的机会高,只是执行的机率高;默认一个线程的优先级和创建他的线程优先级相同;
随时随地看视频慕课网APP

相关分类

Java
我要回答