什么是线程让步?

在校园中,经常会看到很多同学一起打篮球,当某个同学抢到篮球后可以拍一会儿再传递给其他人,大家重新开始抢篮球,这个过程就相当于程序中的线程让步。线程让步可以通过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/262232.html

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

(0)
黑马程序员黑马程序员订阅用户
上一篇 2023年5月6日 23:39
下一篇 2023年5月6日 23:40

相关推荐

  • 我来教你如何才能达到用户至上的设计模式。

    我们都知道网站设计是一个较为复杂的过程,一个网站从设计思维过程和决策阶段的深化过程,设计的方式虽然都在不断的创新,但是却没有太大的突破,尤其是用户为中心的网页设计更为复杂,那如何才能达到用户至上的设…

    2023年6月16日
    02
  • 小编教你SEO服务的常见模式有哪些。

    seo优化是现在比较热门的工作之一,但是它的模式有多少种呢?相信很多人不懂吧,接下来杭州seo模式给大家介绍下!成本分析如果你以个人工作室的名义做生意,输入很低,如果你有电脑、电话、传真机等,你就可以开始做生…

    2023年6月23日
    07
  • 我来教你SEO服务有哪些常见的模式规定。

    seo优化是现在比较热门的工作之一,但是它的模式有多少种呢?相信很多人不懂吧,接下来连云港seo模式给大家介绍下!成本分析如果你以个人工作室的名义做生意,输入很低,如果你有电脑、电话、传真机等,你就可以开始做…

    2023年6月23日
    02
  • 分享C#中thread.sleep的用法有哪些。

    C#中Thread.Sleep用于暂停当前线程的执行,常用于延时操作。 在C中,Thread.Sleep是一个静态方法,用于使当前执行线程暂停指定的时间,它的主要作用是让出CPU资源,以便其他线程可以执行,Thread.Sleep的用法有以下…

    2024年7月14日
    02
  • 小编分享SEO优化公司都提供怎样的服务模式。

    seo优化是现在比较热门的工作之一,但是它的模式有多少种呢?相信很多人不懂吧,接下来杭州seo模式给大家介绍下!成本分析如果你以个人工作室的名义做生意,输入很低,如果你有电脑、电话、传真机等,你就可以开始做生…

    2023年6月29日
    03
  • 今日分享2016中小卖家的赚钱模式。

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

    2023年10月21日
    01
  • 分享2022年seo优化模式是怎样的。

    现在是互联网非常盛行的时代,而且互联网已经成为人们生活当中非常重要的部分,与人类之间已经形成了密不可分的关系,无论任何一个行业当中,企业的发展都离不开网站经营和优化,未来网站优化的行业前景也会越来越…

    2023年6月24日
    03
  • 我来说说聚划算费用如何计算?相关模式介绍。

    聚划算费用如何计算。聚划算,也是一项类似付费推广的方式,是能够帮助卖家提高知名度、扩大品牌推广宣传、提高店铺流量的有效方法,但是,凡是有加入过聚划算的朋友们都知道,要想使用聚划算的相关服务,其实也是…

    2023年10月31日
    07

联系我们

QQ:951076433

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