线程理解之yield方法

/*
 时间:2015年3月12日10:34:59
 测试Thread对象中的yield方法:
 该方法的声明如下:
  public static void yield(); 暂停当前线程,执行其他线程
  让出CPU,给其他线程执行的机会。
 getPriority方法声明如下:
  public final int getPriority();返回当前线程的优先级。
 setPriority方法声明如下:
  public final void setPriority(int newPriority); //更改线程优先级
 通过程序的运行结果,每当程序中的不同线程的for循环中i变量变化到可以整除10的时候,当前线程让出CPU,
 由其他线程继续执行。但是结果并不总是肯定的,例如重点内容处m1线程中for循环中变量I为10并没有切换,
 初步判断是因为m1线程的优先级较高的原因。但是大部分是切换的。这可以通过程序运行的结果来看。
  
  
*/
public class TestYield {
 public static void main(String[] args) {
  MyThread m1 = new MyThread("m1");
  MyThread m2 = new MyThread("m2");
  System.out.println("m1的优先级 ---》" + m1.getPriority());
  System.out.println("m2的优先级 ---》" + m2.getPriority());
  
  m1.setPriority(Thread.NORM_PRIORITY + 3);//分配给线程的默认优先级。public static final int NORM_PRIORITY,是属于类的静态变量,通过类名访问
  System.out.println("m1的优先级 ---》" + m1.getPriority());
  m1.start();
  m2.start();
 }
}

class MyThread extends Thread {
 public MyThread(String name) {
  super(name);
 }
 
 public void run() {
  for (int i=0; i<100; i++) {
   System.out.println(getName() +"------>"+ "i = " + i);
   if (i%10 == 0) {
    yield();//暂停当前正在执行的对象,并执行其他线程。
    
   }
   
  }
 }
}

/*

D:\java\thread>javac TestYield.java

D:\java\thread>java TestYield
m1的优先级 ---》5
m2的优先级 ---》5
m1的优先级 ---》8
m1------>i = 0
m1------>i = 1
m1------>i = 2
m1------>i = 3
m1------>i = 4
m1------>i = 5
m1------>i = 6
m1------>i = 7
m1------>i = 8
m1------>i = 9
m1------>i = 10
m1------>i = 11
m1------>i = 12
m1------>i = 13
m2------>i = 0
m1------>i = 14
m2------>i = 1
m1------>i = 15
m2------>i = 2
m1------>i = 16
m2------>i = 3
m1------>i = 17
m2------>i = 4
m1------>i = 18
m1------>i = 19
m2------>i = 5
m1------>i = 20
m2------>i = 6
m1------>i = 21
m2------>i = 7
m2------>i = 8
m1------>i = 22
m2------>i = 9
m1------>i = 23
m2------>i = 10
m1------>i = 24
m1------>i = 25
m2------>i = 11
m2------>i = 12
m1------>i = 26
m2------>i = 13
m1------>i = 27
m1------>i = 28
m2------>i = 14
m2------>i = 15
m2------>i = 16
m2------>i = 17
m2------>i = 18
m2------>i = 19
m2------>i = 20
m1------>i = 29
m1------>i = 30
m2------>i = 21
m1------>i = 31
m2------>i = 22
m1------>i = 32
m2------>i = 23
m1------>i = 33
m1------>i = 34
m2------>i = 24
m1------>i = 35
m2------>i = 25
m1------>i = 36
m2------>i = 26
m2------>i = 27
m2------>i = 28
m2------>i = 29
m2------>i = 30
m1------>i = 37
m1------>i = 38
m2------>i = 31
m1------>i = 39
m1------>i = 40
m2------>i = 32
m2------>i = 33
m2------>i = 34
m2------>i = 35
m2------>i = 36
m1------>i = 41
m1------>i = 42
m1------>i = 43
m2------>i = 37
m1------>i = 44
m2------>i = 38
m1------>i = 45
m1------>i = 46
m1------>i = 47
m1------>i = 48
m1------>i = 49
m1------>i = 50
m2------>i = 39
m2------>i = 40
m2------>i = 41
m2------>i = 42
m2------>i = 43
m2------>i = 44
m2------>i = 45
m2------>i = 46
m2------>i = 47
m2------>i = 48
m2------>i = 49
m2------>i = 50
m2------>i = 51
m1------>i = 51
m2------>i = 52
m2------>i = 53
m2------>i = 54
m2------>i = 55
m2------>i = 56
m2------>i = 57
m2------>i = 58
m2------>i = 59
m2------>i = 60
m1------>i = 52
m2------>i = 61
m1------>i = 53
m2------>i = 62
m1------>i = 54
m2------>i = 63
m1------>i = 55
m2------>i = 64
m1------>i = 56
m2------>i = 65
m1------>i = 57
m2------>i = 66
m1------>i = 58
m2------>i = 67
m2------>i = 68
m1------>i = 59
m2------>i = 69
m2------>i = 70
m1------>i = 60
m2------>i = 71
m1------>i = 61
m1------>i = 62
m1------>i = 63
m1------>i = 64
m2------>i = 72
m1------>i = 65
m1------>i = 66
m1------>i = 67
m1------>i = 68
m1------>i = 69
m1------>i = 70
m2------>i = 73
m2------>i = 74
m1------>i = 71
m1------>i = 72
m2------>i = 75
m2------>i = 76
m2------>i = 77
m2------>i = 78
m2------>i = 79
m1------>i = 73
m1------>i = 74
m2------>i = 80
m1------>i = 75
m1------>i = 76
m2------>i = 81
m1------>i = 77
m2------>i = 82
m1------>i = 78
m2------>i = 83
m2------>i = 84
m1------>i = 79
m2------>i = 85
m1------>i = 80
m2------>i = 86
m1------>i = 81
m2------>i = 87
m1------>i = 82
m1------>i = 83
m2------>i = 88
m1------>i = 84
m1------>i = 85
m1------>i = 86
m1------>i = 87
m2------>i = 89
m2------>i = 90
m1------>i = 88
m2------>i = 91
m1------>i = 89
m2------>i = 92
m2------>i = 93
m1------>i = 90
m1------>i = 91
m2------>i = 94
m1------>i = 92
m2------>i = 95
m1------>i = 93
m2------>i = 96
m1------>i = 94
m2------>i = 97
m1------>i = 95
m2------>i = 98
m2------>i = 99
m1------>i = 96
m1------>i = 97
m1------>i = 98
m1------>i = 99


*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值