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();
            }
          }
        }
      }

    }

    运行的结果是变化的。

    心里只有自己时,总嫌别人做得不够;心里只有别人时,总嫌自己做得不够。
  • 相关阅读:
    Unity 移动端的复制这么写
    Unity如何管理住Android 6.0 调皮的权限
    谷歌商店Apk下载器
    Unity编辑器下重启
    git pull error
    如何简单的实现新手引导之UGUI篇
    linux系统安装python3.5
    Grafana设置mysql为数据源
    hyper -v 虚拟机(win_server)忘记密码重置
    zabbix报错:the information displayed may not be current
  • 原文地址:https://www.cnblogs.com/lovefeng/p/4675125.html
Copyright © 2011-2022 走看看