java中线程概念描述

豆豆网   技术应用频道   2007年10月29日  【字号: 收藏本文

本文详细介绍java中线程概念描述

  运行这个程序,看看结果是否与示例3一样

  五:yield()

  yield()方法与sleep()方法相似,只是它不能由用户指定线程暂停多长时间。按照SUN的说法:

  sleep方法可以使低优先级的线程得到执行的机会,当然也可以让同优先级和高优先级的线程有执行的机会。而yield()

  方法只能使同优先级的线程有执行的机会。

  示例11:

publicclassThreadTestimplementsRunnable{
 publicvoidrun(){
  8
    for(intk=0;k<10;k++){
   if(k==5&&Thread.currentThread().getName().equals("t1")){
    Thread.yield();
   }
   System.out.println(Thread.currentThread().getName()
            +":"+k);
  }
 }
  
publicstaticvoidmain(String[]args){
  Runnabler=newThreadTest();
  Threadt1=newThread(r,"t1");
  Threadt2=newThread(r,"t2");
  t1.setPriority(Thread.MAX_PRIORITY);
  t2.setPriority(Thread.MIN_PRIORITY);
  t1.start();
  t2.start();
 }
}

  输出结果:

  t1:0
  t1:1
  t1:2
  t1:3
  t1:4
  t1:5
  t1:6
  t1:7
  t1:8
  t1:9
  t2:0
  t2:1
  t2:2
  t2:3
  t2:4
  t2:5
  t2:6
  t2:7
  t2:8
  t2:9

  多次运行这个程序,输出也是一样。这说明:yield()方法不会使不同优先级的线程有执行的机会。

责编:豆豆技术应用

正在加载评论...