当前位置:首页 > 开发 > 编程语言 > 多线程 > 正文

线程优先级

发表于: 2013-05-27   作者:bijian1013   来源:转载   浏览:
摘要: 多线程运行时需要定义线程运行的先后顺序。 线程优先级是用数字表示,数字越大线程优先级越高,取值在1到10,默认优先级为5。 实例: package com.bijian.study; /** * 因为在代码段当中把线程B的优先级设置高于线程A,所以运行结果先执行线程B的run()方法后再执行线程A的run()方法 * 但在实际中,JAVA的优先级不准,强烈不建议用此方法来控制执

多线程运行时需要定义线程运行的先后顺序。

线程优先级是用数字表示,数字越大线程优先级越高,取值在110,默认优先级为5

实例:

package com.bijian.study;

/**
 * 因为在代码段当中把线程B的优先级设置高于线程A,所以运行结果先执行线程B的run()方法后再执行线程A的run()方法
 * 但在实际中,JAVA的优先级不准,强烈不建议用此方法来控制执行顺序和频率
 */
public class ThreadPriorityDemo {

	public static void main(String args[]) {
		ThreadA a = new ThreadA();
		ThreadB b = new ThreadB();
		b.setPriority(10);
		a.setPriority(1);	//设置优先级别,数值越大优先级越高
		
		int priA = a.getPriority();	//获得优先级的方法
		int priB = b.getPriority();
		System.out.println(priA);
		System.out.println(priB);
		
		b.start();
		a.start();
	}
}

class ThreadA extends Thread {
	public void run() {
		System.out.println("我是线程A");
	}
}

class ThreadB extends Thread {
	public void run() {
		System.out.println("我是线程B");
	}
}

 运行结果:

1
10
我是线程B
我是线程A

设置优先级也可以用线程常量

a.       MAX_PRIORITY为最高优先级10

b.       MIN_PRIORITY为最低优先级1

c.       NORM_PRIORITY是默认优先级5

实例:

package com.bijian.study;

public class ThreadPriConstantDemo {

	public static void main(String args[]) {
		Thread a = new Thread();
		int temp = Thread.MAX_PRIORITY;
		a.setPriority(temp);	//将线程优先级设置为最高
		System.out.println(a.getPriority());
		
		temp = Thread.MIN_PRIORITY;
		a.setPriority(temp);	//将线程优先级设置为最低
		System.out.println(a.getPriority());
		
		temp = Thread.NORM_PRIORITY;
		a.setPriority(temp);	//将线程优先级设置为默认
		System.out.println(a.getPriority());
	}
}

运行结果:

10
1
5

 

线程优先级

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
当程nbs 级" target="_blank">线程优先级中断f

"et= = >sa> "searc "searnd3,"s

<并非"Cmjia方如 bspan些 "sear"CmCPUjsp耗mt1arch_001_redbg">2 线程优先级

线程优先级中断f

2 线程优先级
1arch_001_redbg">2

互-- A "searchee-- 挂div>唤醒pan及="searc-- "sear除了这t1arch_001_redbg">2 线程优先级
1arch_001_redbg">2

2 线程优先级
>
2

否则 t1arch_001_redbg">2 线程优先级
98 状态、clic及=p;  "sear 状态、clic及=p; ear-10">
2 线程优先级
238489> 表示,2 "sear 生命周n><=p;  表示,2 "sear 生命周n><=p; ear-10">
2 线程优先级
lass="bds_tsind3 "sear p;  lass="bds_tsind3 "sear p; ear-10">
"searcp; 较&nb "searcan>"CmCPUp;&nbript">p; 较t1arch_001_redbg">2 线程优先级
表示,- "sear m度(p; ) 表示,- "sear m度(p; )ear-10">
"sear 次 jia只lestiv>p; &nb "sear pCPU资应 t1arch_001_redbg">2 线程优先级
2 <%BE202hCon" style=-->
嵌兆开始*/ var c缓存E*/ var cpro_id = "u2*/ foothis.value*/ foothilmom/cpro/div>
> 正-
繁體中文