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

    }

    运行的结果是变化的。

    心里只有自己时,总嫌别人做得不够;心里只有别人时,总嫌自己做得不够。
  • 相关阅读:
    opencv掩模操作
    cvtColor()学习
    opencv中mat类介绍
    c++中的stl
    opencv3中SurfFeatureDetector、SurfDescriptorExtractor、BruteForceMatcher的使用
    CUDA学习
    visual studio + opencv + contrib
    11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
    11.10/11.11/11.12 安装PHP5 11.13 安装PHP7
    11.6 MariaDB安装 11.7/11.8/11.9 Apache安装
  • 原文地址:https://www.cnblogs.com/lovefeng/p/4675125.html
Copyright © 2011-2022 走看看