国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > java基础 > java中join的原理

java中join的原理

头像

小妮浅浅

2021-01-08 15:34:113531浏览 · 0收藏 · 0评论

我们都知道程序中多线程,不同线程之间的运行顺序是我们要考虑的问题。我们可以使用一种join()方法,来对线程执行的顺序进行定义。当某一线程执行完,再运行下一个线程。下面我们就join()概念和源码进行分析和理解,然后带来join()使用方法的实例介绍,一起来看具体内容。

1.join()概念

一直等待直到该线程死亡,可以指定等待指定时间内线程死亡,否则,一直在循环判断线程。如果join的方法在线程实例中被调用,当前运行的线程会被堵塞,直到线程实例运行完成。

2.join()源码

public final synchronized void join(long millis)
    throws InterruptedException {
    long base = System.currentTimeMillis();
    long now = 0;
 
    if (millis < 0) {
        throw new IllegalArgumentException("timeout value is negative");
    }
 
    if (millis == 0) {
        while (isAlive()) {
            wait(0);
        }
    } else {
        while (isAlive()) {
            long delay = millis - now;
            if (delay <= 0) {
                break;
            }
            wait(delay);
            now = System.currentTimeMillis() - base;
        }
    }
}

可以看出它是利用wait方法来实现的,上面的例子当main方法主线程调用线程t的时候,main方法获取到了t的对象锁,而t调用自身wait方法进行阻塞,只要当t结束或者到时间后才会退出,接着唤醒主线程继续执行。millis为主线程等待t线程最长执行多久,0为永久直到t线程执行结束。

3.join()实例

   //join抢占CPU时间片
    public static void joinTest() throws InterruptedException {
        //定义一个线程
        Thread thread = new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + ": 测试线程开始执行。。。");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + ": 测试线程执行结束了。");
        });
        thread.start();
        System.out.println(thread.getName() + ": 执行join方法");
        thread.join();
        System.out.println(Thread.currentThread().getName() + ": 主线程开始执行");
    }

打印日志:

Thread-0: 执行join方法
Thread-0: 测试线程开始执行。。。
Thread-0: 测试线程执行结束了。
main: 主线程开始执行

以上就是java中join的原理,学会后我们可以对线程的任务顺序进行操作,看懂join的原理后,就试试代码部分的使用吧。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

汆肉的日常视频| 夹心玩具BY笔趣阁| 双人打扑克剧烈运动视频| 电动吸奶器| Y31成色好的Y31| 《乳牛牧场的奶牛娘》动漫免费观. | 男人添女人荫道口视频| 深入无人区短剧免费高清观看 | 温柔女教师在线观看电视剧大全 | 新加坡疫情| 《一滴都不许漏》何泽城林荫 | 美女溜溜身子视频素材高清| 我把校花嘴巴当套子的小说 | 抢钱袋鼠| 日本大片又大又好看的PPT| CSGO2开箱网站| T大校花沉浮录续集TXT| 全飞秒手术2024价目表| 男按摩师吸乳房会得乳腺瘟吗| 男朋友说我的骚B只能给他吃| 男同| 妈妈你真棒插曲快来救救我电影 | 两个男人睡一个女人什么心理呢| 男生把小因因放到女生困里视频| 器材室轮-」-(1):蒙着眼在.. | 《共享弟夫》动漫在线观看免费 | 女生给男生吃小头头| 《课后2对1特别授课》女主角是..| 美女比基尼游泳图片视频| 白丝袜精华液抹在脚上的功效| 黑丝美女| 小妹3| 美女两个球球抖动抓球球视频| 麦子交换2免费完整版| 女生胸前两颗大大的包是什么| 春闺艳妇(古言)作者:年富一年| 美国禁忌2在线观看电视剧| 恋爱之瘾| 法国《监狱伦理3》| 共享玩物(N)笔趣阁二狗| 人口兽猪马狗第1集