java线程优先级理解


/*
 时间:2015年3月12日14:23:42
 测试java中线程优先级的问题
 线程的优先级别:
  java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程。线程调度器按照线程的优先级决定应调用那个线程来执行。
  线程的优先级用数字表示,范围为从1到10,一个线程的缺省优先级是5
    Thread.MIN_PRIORITY == 1
    Thread.MAX_PRIORITY == 10
    Thread.NORM_PRIORITY == 5
   使用下面方法获得或者设置线程对象的优先级
    int getPriority();
    public final void setPriority(int newPriority);
   查看程序运行的结果:
   程序中一共有三个线程:main, t1, t2
   程序首先执行了线程1中for循环中一句,然后执行了t2线程中for循环一句
   接着虚拟机调度的是main线程,一次输出了两个线程的优先级,即默认的优先级。
   然后虚拟机调度的分别是t2线程中一句,t1线程中的一句,t2线程中的一句。
   然后虚拟机又再次的调度了主线程,依次输出了两个更新过优先级后的优先级。
   然后,虚拟机又再次的调度了t2中的一句,t1中for循环的两句。
   然后………………
   
   
*/
public class TestPriority {
 public static void main(String[] args) {
  Runner1 runner1 = new Runner1();
  Thread t1 = new Thread(runner1);
  t1.start();
  Runner2 runner2 = new Runner2();
  Thread t2 = new Thread(runner2);
  t2.start();
  
  System.out.println(t1.getPriority());
  System.out.println(t2.getPriority());
  
  t1.setPriority(Thread.MAX_PRIORITY);
  t2.setPriority(Thread.MIN_PRIORITY);
  
  System.out.println(t1.getPriority());
  System.out.println(t2.getPriority());
 }
}

class Runner1 implements Runnable {
 public void run() {
  for (int i=0; i<50; i++) {
   System.out.println("runner1 " + i);
  }
 }
}

class Runner2 implements Runnable {
 public void run() {
  for (int i=0; i<50; i++) {
   System.out.println("runner2 " + i);
  }
 }
}
/*

D:\java\thread>javac TestPrio

D:\java\thread>java TestPrior
runner1 0
runner2 0
5
5
runner2 1
runner1 1
runner2 2
10
1
runner2 3
runner1 2
runner1 3
runner2 4
runner1 4
runner1 5
runner2 5
runner1 6
runner2 6
runner1 7
runner1 8
runner2 7
runner1 9
runner2 8
runner1 10
runner2 9
runner1 11
runner2 10
runner1 12
runner2 11
runner1 13
runner1 14
runner2 12
runner1 15
runner2 13
runner1 16
runner2 14
runner1 17
runner1 18
runner1 19
runner1 20
runner2 15
runner1 21
runner2 16
runner1 22
runner2 17
runner1 23
runner2 18
runner2 19
runner2 20
runner2 21
runner2 22
runner2 23
runner1 24
runner1 25
runner2 24
runner1 26
runner1 27
runner1 28
runner1 29
runner2 25
runner1 30
runner2 26
runner1 31
runner1 32
runner2 27
runner1 33
runner1 34
runner1 35
runner2 28
runner2 29
runner2 30
runner2 31
runner2 32
runner2 33
runner1 36
runner1 37
runner1 38
runner2 34
runner1 39
runner2 35
runner1 40
runner2 36
runner1 41
runner2 37
runner1 42
runner2 38
runner1 43
runner2 39
runner1 44
runner2 40
runner1 45
runner2 41
runner1 46
runner2 42
runner1 47
runner2 43
runner1 48
runner2 44
runner1 49
runner2 45
runner2 46
runner2 47
runner2 48
runner2 49
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值