yield()函数的作用是让步,它让当前线程由运行状态进入就绪状态,而不是像wait()一样进入阻塞状态。因此,并不能保证在当前线程调用yield()之后,其他具有相同优先级的线程一定能获得执行权,也有可能是当前线程又重新进入了运行状态。

示例代码:

class ThreadA extends Thread{public ThreadA(String name){super(name);}public synchronized void run(){for(int i=0; i <10; i++){System.out.printf("%s [%d]:%d\n", this.getName(), this.getPriority(), i);// i整除4时,调用yieldif (i%4 == 0)Thread.yield();}}
}
public class NotifyAllTest {public static void main(String[] args) {ThreadA t1 = new ThreadA("t1");ThreadA t2 = new ThreadA("t2");t1.start();t2.start();}
}
运行结果:
t2 [5]:0
t1 [5]:0
t2 [5]:1
t2 [5]:2
t2 [5]:3
t2 [5]:4
t1 [5]:1
t1 [5]:2
t1 [5]:3
t1 [5]:4
t2 [5]:5
t2 [5]:6
t2 [5]:7
t2 [5]:8
t2 [5]:9
t1 [5]:5
t1 [5]:6
t1 [5]:7
t1 [5]:8
t1 [5]:9
yield()虽然可以让线程由运行状态进入到就绪状态,但最后谁获取CPU的执行权限是不一定的。

Thread--线程让步yield相关推荐

  1. java sleep唤醒_详解Java中的线程让步yield()与线程休眠sleep()方法

    Java中的线程让步会让线程让出优先级,而休眠则会让线程进入阻塞状态等待被唤醒,这里我们对比线程等待的wait()方法,来详解Java中的线程让步yield()与线程休眠sleep()方法 线程让步: ...

  2. 线程让步yield实现

    线程中yield(让步):让当前线程暂停执行(重新排队,进入就绪状态)进入等待,把资源让给其他同级别线程,让后面线程先执行: 由CPU重新调度,让步不一定成功,需看CPU心情: 实例: //线程让步 ...

  3. 多线程-线程让步(yield)

    1. yield()介绍 yield()的作用是让步.它能让当前线程由"运行状态"进入到"就绪状态",从而让其它具有相同优先级的等待线程获取执行权:但是,并不能 ...

  4. 【JAVA】-- 多线程(线程让步yield、线程插队join)

    一.线程让步 线程让步是指正在执行的线程,在某些情况下将CPU资源让给其他线程执行. 可通过yield()方法来实现. 该方法和sleep()方法有点相似,都可以让当前正在运行的线程暂停,区别在于yi ...

  5. Java的线程让步yield

    一 点睛 yield()方法是一个和sleep()方法有点类似的方法,它是Thread类提供的一个静态方法,它也可以让当前正在执行的线程暂停,但它不会阻塞该线程,它只是让线程转入就绪状态.yield只 ...

  6. 线程让步——Thread.yield()

    1.yield()的作用是让步,它能让当前线程由"运行状态"进入到"就绪状态",从而让其它具有相同优先级的等待线程获取执行权.但是,并不能保证在当前线程调用yi ...

  7. 线程让步(yield)和线程睡眠(sleep)区别

    线程睡眠(sleep) 让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用Thread类的静态sleep()方法来实现.当前线程调用sleep()方法进入阻塞状态后,在其睡眠时间内,该线 ...

  8. java中的让步_java基本教程之线程让步 java多线程教程

    本章涉及到的内容包括: 1. yield()介绍 2. yield()示例 3. yield() 与 wait()的比较 1. yield()介绍 yield()的作用是让步.它能让当前线程由&quo ...

  9. yield方法释放锁吗_java多线程,让步yield

    发表于 2014-07-02 10:22:36 by 月小升 [seriesposts sid=500] package com.javaer.thread; public class YThread ...

  10. java中让步的_java 多线程—— 线程让步

    java 多线程 目录: 概述 第1 部分 yield()介绍 yield()的作用是让步.它能让当前线程由"运行状态"进入到"就绪状态",从而让其它具有相同优 ...

最新文章

  1. linux动态库注册函数,Linux动态库函数的详解
  2. 物联网6类技术无线连接技术的分析
  3. C#中通过list的GetRange方法对list进行按执行长度截取并拆分
  4. Amazon Aurora 深度探索
  5. 二次优化大招(由泰勒公式推出最值条件)
  6. django 1.8 官方文档翻译:2-1-1 模型语法
  7. ncl 添加点shp文件_基于Arcgis绘制采样点地图
  8. 效果超某度OCR:文本检测、文本识别(cnn+ctc、crnn+ctc)
  9. angular学习之路(一)
  10. html5网页制作心得体会,学习网页制作心得体会范文3篇
  11. 阿里达摩院发布2019十大科技趋势:数字身份将成为第二张身份证
  12. CPU飙高和内存飙高等等的一般处理步骤
  13. javascript基础常识问答(二)
  14. 邮件发信速率控制也很重要
  15. 计算机图形学应用题,计算机图形学教学大纲
  16. 解决CitSpace分析新版本web of science文献报错“the timing slicing setting is outside the range of your data”
  17. 4gl的内建函数和操作符简介
  18. C语言中文网Socket学习笔记
  19. 1147 -- 小周的烦恼
  20. 51nod1284 2 3 5 7的倍数

热门文章

  1. 新买的电脑没有免费的office怎么弄?
  2. Linux常用命令-文件操作 网络命令 性能命令
  3. ERP真能大刀阔斧得起来?(转)
  4. car cdr cadr 服务器
  5. 神经网络初探(BP 算法、手写数字识别)
  6. 学生静态HTML个人博客主页【Web大学生网页作业成品】HTML+CSS+JavaScript
  7. ubuntu从零开始手工编译shogun
  8. Unity支持GIF,零卡顿,秒解码
  9. 信息学奥林匹克,精品大学AP课程
  10. 服务器的结构可以选择1u2u3u1u是什么意思