6.5Java线程暂停状态>yield

6.5Java线程暂停状态--->yield

线程礼让状态yield

yield的特点:

  • 礼让线程,让当前正在执行的线程暂停

  • 不是阻塞线程,而是直接从运行状态转入就绪状态

    • 让出cpu的调度,避免当前线程占用cpu过久

  • 让cpu调度器重新调度

    • 该方法会释放cpu资源

    • 不会释放锁资源

示例dome
package iostudy.threadstate;

/**
* yield线程礼让
* 礼让完成后直接进入就绪状态,不是阻塞状态!!!
* 让cpu重新调用
* @since JDK 1.8
* @date 2021/6/5
* @author Lucifer
*/
public class YieldDemoNo2 {

   /*用lambda方法写线程体,在主线程里面进行礼让*/
   //使用lambda表达式
   public static void main(String[] args) {
       new Thread(() -> {
           //循环输出
           for (int i = 0; i < 100; i++){
               System.out.println("lambda!!!");
          }
      }).start();

       /*在主线程中进行礼让*/
       for (int i = 0; i < 100; i++){
           /*有规律的进行礼让*/
           if (i % 20==0){
               /*线程礼让*/
               Thread.yield();
          }

           System.out.println("main:" + i);

      }
  }
}

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14852812.html