什么是线程让步?

在校园中,经常会看到很多同学一起打篮球,当某个同学抢到篮球后可以拍一会儿再传递给其他人,大家重新开始抢篮球,这个过程就相当于程序中的线程让步。线程让步可以通过yield()方法来实现,该方法和sleep(long millis)方法有点类似,都可以让当前正在运行的线程暂停,区别在于yield()方法不会阻塞该线程,它只是将线程转换成就绪状态,让系统的调度器重新调度一次。当某个线程调用yield()方法之后,与当前线程优先级相同或者更高的线程可以获得执行的机会。接下来通过一个案例来演示yield()方法的使用,如例10-9所示。

例10-9 Example09.java

//定义YieldThread类继承Thread类class YieldThread extends Thread {    //定义一个有参的构造方法    public YieldThread(String name) {        super(name); //调用父类的构造方法        public void run() {            for (int i = 0; i < 5; i++) {                System.out.println(Thread.currentThread().getName() + "---" + i);                If(i == 2) {                    System.out.print( "线程让步:");                    Thread.yield(); //线程运行到此,作出让步                }            }        }    }    public class Example09 {        public static void main(String[] args) {            //创建两个线程            Thread threadl1 = new YieldThread("threadl");            Thread thread2 = new YieldThread("thread2");            //开启两个线程            Thread1.start();            thread2.start();        }    }

运行结果如图所示

什么是线程让步?

例10-9中创建了两个线程threadl和thread2,它们的优先级相同。两个线程在循环变量i等于2时,都会调用Thread的yield()方法,使当前线程暂停,让两个线程再次争夺CUP使用权,从运行结果可以看出,当线程thread1输出2以后,会做出让步,线程thread2获得执行权,同样,线程 thread2输出2后,也会做出让步,线程 threadl获得执行权。小提示:通过yield()方法可以实现线程让步,让当前正在运行的线程失去CPU使用权,让系统的调度器重新调度一次,由于Java虚拟机默认采用抢占式调度模型,所有线程都会再次抢占CUP资源使用权,所以在执行线程让步后并不能保证立即执行其他线程。

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/262930.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
黑马程序员黑马程序员订阅用户
上一篇 2023年5月13日 12:46
下一篇 2023年5月13日 12:47

相关推荐

  • 我来说说storm崩溃问题怎么解决。

    Storm是一个开源的分布式实时计算系统,被广泛应用于大数据处理、实时分析等领域,在使用过程中,可能会遇到Storm崩溃的问题,本文将介绍一些常见的Storm崩溃问题及其解决方法。 1. 内存不足导致崩溃 Storm在运行过…

    2024年6月13日
    00
  • 说说游戏多开用什么cpu好。

    游戏多开,即同时运行多个游戏客户端,是对CPU性能的极大考验,选择适合游戏多开的CPU时,应考虑其核心数、线程数、时钟频率、缓存大小及热设计功耗(TDP)等因素,以下是一些建议和推荐: 多核性能 游戏多开首先需…

    2024年6月12日
    08
  • 我来教你12核24线程的处理器是一个还是两个。

    在现代计算机领域,多核心处理器已经变得非常普遍,它们通过在单个芯片上集成多个独立的核心来提供更高的处理能力,从而允许并行处理多个任务,当我们提到“十二核二十四线程”,我们正在讨论一种具有12个物理核心的…

    2024年6月11日
    00
  • 今日分享2016中小卖家的赚钱模式。

    而今很多种中小卖家,累又挣不到钱,每每把自己弄得像几十岁的老头。其实,现在做淘宝只要你把思路,屡清楚,模式摸清,其实做起来也不是很困难。小编在这里分享一些经验,供大家参考。 首先,我们要知道自己有什么…

    2023年10月21日
    00
  • 小编教你杭州推广策划公司|RTB广告交易模式成为广告的创意模式。

    在RTB广告买卖模式中,原有的广告生态链发生了颠覆性改变。其进程就也是极具创意创新意义。外行人听来彻底莫名其妙,有意思的是,常常却能令业内人士会心一笑。奥妙在于一项新技能在广告范畴的盛行——该公司对接的是…

    2023年6月26日
    00
  • 我来教你网络推广方式很多,收费和免费该如何选择。

    我们在做无论是品牌还是产品推广的时候,往往会不知所措,到底哪个平台能满足你的需求。我们在选择推广平台的时候,首先确立品牌或者产品的定位,然后通过定位找到用户群体以及该群体最大的网络推广平台。推广方式…

    2023年3月11日
    01
  • 淘宝客的模式有哪些。

    淘宝客作为淘宝官方认可的一种群体,他们存在的价值还是挺大的,不仅可以帮助淘宝卖家们推广商品,也能给淘宝自己打广告,所以淘宝客一直在发展的过程中,那么你知道它的模式是怎样的吗?聊天类、扣群:这种也就是微…

    2023年10月20日
    00
  • 小编教你java中线程的状态有哪几种。

    Java 中的线程状态是 Java 多线程编程中的一个重要概念,线程在它的生命周期内会经历多种不同的状态,这些状态反映了线程的运行情况和可执行性,Java 语言定义了以下六种线程状态: 1、新建(New) 线程对象被创建…

    2024年7月18日
    00

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息