资讯专栏INFORMATION COLUMN

java多线程 join/yield

chanthuang / 692人阅读

摘要:但是,实际中无法保证达到让步的目的,因为,让步的线程可能被线程调度程序再次选中。结论大多数情况下,将导致线程从运行状态转到可运行状态,但有可能没有效果。

join

join方法相当于让出执行权,thread.join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。

    @RequestMapping("test-join")
    public void testJoin() throws InterruptedException {
        System.out.println("主线程start");
        Thread thread = new Thread(()->{
            for (int i = 0; i < 100; i++) {
                System.out.println("i = " + i);
            }
        });
        thread.start();
        thread.join();
        for (int j = 0; j < 100; j++) {
            System.out.println("j = " + j);
        }
        System.out.println("主线程end");

    }

结果:

主线程start

i循环

j循环

主线程end

yield

Thread.yield()方法的作用:暂停当前正在执行的线程,并执行其他线程。(可能没有效果)
yield()让当前正在运行的线程回到可运行状态,以允许具有相同优先级的其他线程获得运行的机会。因此,使用yield()的目的是让具有相同优先级的线程之间能够适当的轮换执行。但是,实际中无法保证yield()达到让步的目的,因为,让步的线程可能被线程调度程序再次选中。
结论:大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74266.html

相关文章

  • 线程编程:wait, notify, join, yield都有啥用?

    摘要:通知任一一个进入等待状态的线程,通知所有让调用线程阻塞在这个方法上,直到的线程完全执行完毕,调用线程才会继续执行。通知调度器,主动让出对的占用。 多线程在开发知识中是一个很重要的部分,然而实际生产中却很少遇到真正需要自己去处理多线程编程里的那些复杂细节和问题,因为很多时候,都有一套架构或者一些框架帮大部分业务程序员隐藏了多线程的细节,大多时候只需要简单的实现各种业务逻辑即可。 今天来理...

    lovXin 评论0 收藏0
  • Java并发编程——线程基础查漏补缺

    摘要:告诉当前执行的线程为线程池中其他具有相同优先级的线程提供机会。不能保证会立即使当前正在执行的线程处于可运行状态。当达到超时时间时,主线程和是同样可能的执行者候选。下一篇并发编程线程安全性深层原因 Thread 使用Java的同学对Thread应该不陌生了,线程的创建和启动等这里就不讲了,这篇主要讲几个容易被忽视的方法以及线程状态迁移。 wait/notify/notifyAll 首先我...

    luqiuwen 评论0 收藏0
  • Java线程汇总

    摘要:线程需要避免竟态,死锁以及很多其他共享状态的并发性问题。用户线程在前台,守护线程在后台运行,为其他前台线程提供服务。当所有前台线程都退出时,守护线程就会退出。线程阻塞等待获取某个对象锁的访问权限。 1、多线程介绍 多线程优点 资源利用率好 程序设计简单 服务器响应更快 多线程缺点 设计更复杂 上下文切换的开销 增加资源消耗线程需要内存维护本地的堆栈,同时需要操作系统资源管理线程。...

    Lsnsh 评论0 收藏0
  • Java问题汇总,持续更新到GitHub

    摘要:目录介绍问题汇总具体问题好消息博客笔记大汇总年月到至今,包括基础及深入知识点,技术博客,学习笔记等等,还包括平时开发中遇到的汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善开源的文件是格式的同时也开源了生活博客,从年 目录介绍 00.Java问题汇总 01.具体问题 好消息 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技...

    beita 评论0 收藏0
  • Java面试通关要点汇总集

    摘要:本文会以引出问题为主,后面有时间的话,笔者陆续会抽些重要的知识点进行详细的剖析与解答。敬请关注服务端思维微信公众号,获取最新文章。 原文地址:梁桂钊的博客博客地址:http://blog.720ui.com 这里,笔者结合自己过往的面试经验,整理了一些核心的知识清单,帮助读者更好地回顾与复习 Java 服务端核心技术。本文会以引出问题为主,后面有时间的话,笔者陆续会抽些重要的知识点进...

    gougoujiang 评论0 收藏0

发表评论

0条评论

chanthuang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<