zoukankan      html  css  js  c++  java
  • Java线程中yield()的用法

    Thread.yield()方法的作用:暂停当前正在执行的线程,并执行其他线程。(可能没有效果)

    yield()让当前正在运行的线程回到可运行状态,以允许具有相同优先级的其他线程获得运行的机会。因此,使用yield()的目的是让具有相同优先级的线程之间能够适当的轮换执行但是,实际中无法保证yield()达到让步的目的,因为,让步的线程可能被线程调度程序再次选中。

    结论:大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。

    public class TestYield {
      public static void main(String [] args){
        MyThread t1 = new MyThread("t1");
        MyThread t2 = new MyThread("t2");
        t1.start();
        t2.start();
      }
    }

    class MyThread extends Thread{
      MyThread(String s){
      super(s);
      }

      public void run(){
        for(int i = 0; i <= 30; i ++){
          System.out.println(getName()+":"+i);
          if(("t1").equals(getName())){
            if(i == 0){
              yield();
            }
          }
        }
      }

    }

    运行的结果是变化的。

    心里只有自己时,总嫌别人做得不够;心里只有别人时,总嫌自己做得不够。
  • 相关阅读:
    信息系统项目管理师沟通的四个好习惯
    Android 线程
    替换exe程序图标DLL
    Python 邮件类
    android自适应屏幕方向和大小
    sqlserver 存储过程
    FinalData 数据恢复工具[绿色版]
    Python Python 正则 取中括号值
    在Button任意位置加图片效果
    android GPRS
  • 原文地址:https://www.cnblogs.com/lovefeng/p/4675125.html
Copyright © 2011-2022 走看看