当前位置: 首页 > news >正文

多线程_10_礼让yield

礼让线程:让当前正执行线程从运行状态转入就绪状态,然后让cpu重新调度,而不是进入阻塞状态。这样可以避免当前线程占用cpu过久,这个yield和sllep一样的是,都是静态方法。
在这里插入图片描述
案例

package com.cb.thread.day02;
/** yield 礼让线程,暂停线程,然后直接进入就绪状态不是阻塞状态*/public class YieldDemo01 {public static void main(String[] args) {MyYield my = new MyYield();new Thread(my,"a").start();new Thread(my,"b").start();}
}
class MyYield implements Runnable{@Overridepublic void run() {System.out.println(Thread.currentThread().getName()+"-->start");Thread.yield();//礼让System.out.println(Thread.currentThread().getName()+"-->end");}
}

运行结果1:当cpu调度线程a进入运行状态执行run方法先打印a->start,礼让进入就绪状态等待cpu 调度,然后cpu调度线程b进入运行状态执行run方法打印b–>start,礼让进入就绪状态等待cpu 调度,然后cpu调度线程a接着打印a–>end
,接着a进入死亡状态,然后cpu调度线程b接着打印b–>end,b也进入死亡状态。
在这里插入图片描述

运行结果2:当cpu调度线程a进入运行状态执行run方法先打印a->start,礼让进入就绪状态等待cpu 调度,然后cpu调度线程b进入运行状态执行run方法打印b–>start,礼让进入就绪状态等待cpu 调度,然后cpu还是调度线程b接着打印b–>end,接着b进入死亡状态,然后cpu调度线程b接着打印a–>end,a也进入死亡状态。在这里插入图片描述
运行结果3:当cpu调度线程a进入运行状态执行run方法先打印a->start,礼让进入就绪状态等待cpu 调度,然后cpu还是调度线程a接着打印a–>end,接着a进入死亡状态,然后cpu还是调度线程b接着打印b–>start,然后没有线程了,cpu调度线程b接着打印b–>end,b也进入死亡状态。
在这里插入图片描述
从上面的三个结果中可以得出,不一定每次都会礼让成功,而让线程从运行状态进入就绪状态,然后在公平竞争。


http://www.taodudu.cc/news/show-8457248.html

相关文章:

  • yield() 初让线程(礼让线程)
  • 不礼让行人怎么抓拍的_权威发布:丹阳正式抓拍斑马线前不“礼让行人”,八张图告诉您如何正确礼让...
  • 苹果手机更改定位 - 爱思助手
  • 爱思助手“显示发送描述文件到设备失败”
  • 写一个python代码自动读取eⅹcle内容,把内容提交到网页
  • ACM MM 2023| CLE Diffusion:可控光照增强扩散模型(low light image enhancement)
  • App 的界面设计流程
  • Allegro16.6添加标注的方法
  • 老SDRAM和DDR SDRAM时序图与信号完整性仿真结合运用(2) -版本博客图片丢失,增加图片后又不能上传,shit.
  • 实战:内容营销如何吸引顾客 试试五个切入点
  • 关于外场测试的一点儿介绍
  • 笔记本用gpu运行tensorflow-gpu,keras写的老程序,结果与原来不一样,一脸懵逼。
  • 腾讯一面!说说ArrayList的遍历foreach与iterator时remove的区别,我一脸懵逼
  • 信心满满去面美团,结果被JVM9连问怼的一脸懵逼
  • 字节跳动面到这道题,有的读者一脸懵逼,有的读者笑嘻嘻
  • 初学网络安全一脸懵逼?看懂直接跪下!
  • 微信小程序app.json全局配置
  • 计算机毕业设计PHP+安卓美食菜谱App(源码+程序+lw+远程调试)
  • 同城厨师上门做饭系统源码做菜预约做饭家宴代厨轰趴app源码厨师入住+厨师傅端/前端语言uniapp
  • 历书中的哥伦布
  • GPS历书(Almanac)和星历(Ephemeris)有什么区别?
  • SSM之一点一滴:Object对象使用Field反射遍历书输出
  • how many days c语言,万年历书-C精粹的万年历C语言实例解析精粹这本书的万年历程序实在是看不懂, 爱问知识人...
  • GPS星历与历书的区别
  • GPS卫星 星历与历书的区别
  • GPS星历与历书
  • Java小白——三元运算符比较两个数获得大值
  • 小程序的三元表达式
  • 三元表达式多个判断条件
  • 三元运算符 比较三个数大小 三元操作符的类型务必一致