java 并发 join 之 老王泡茶

package juc;

import java.util.concurrent.TimeUnit;

/**
 * @author yanjun.liu
 * @date 2020/7/1--17:00
 */
public class Test6 {

    public static void main(String[] args) throws InterruptedException {

        Thread lw= new Thread(()->{
            try {

                System.out.println("老王开始洗杯子");
                TimeUnit.SECONDS.sleep(1);
                System.out.println("老王开始烧水");
                TimeUnit.SECONDS.sleep(5);
                System.out.println("老王烧水完成");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        },"老王");

        Thread lisi=  new Thread(()->{
            try {
                System.out.println("李四开始找茶叶");
                TimeUnit.SECONDS.sleep(3);
                System.out.println("李四都做完了。。。。等老王烧开水,泡茶");
                //lisi等待老王
                lw.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("李四泡茶");

        });

        long start = System.currentTimeMillis();
        lw.start();
        lisi.start();
        //主线程等待,目的等待两个线程执行完成,打印时间
        lisi.join();
        lw.join();
        long end = System.currentTimeMillis();
        System.out.println(start-end);
    }



}

热门文章

暂无图片
编程学习 ·

JS 中的展开运算符你了解多少 ?

什么是展开运算符 (...)?展开运算符 :允许一个表达式在某处展开。展开运算符在多个参数(用于函数调用)或多个元素(用于数组字面量)或者多个变量(用于解构赋值)等地方可以使 用,作用就是 展开数组或字符串为一个新数组。注意 : 展开运算符不能用在对象当中,因为目前…
暂无图片
编程学习 ·

移动开发笔记(四)UI

1.常见控件 属性match_parent 当前控件大小和父布局的大小一样wrap_content 控件的大小能刚好包含里面的内容dp是一种屏幕密度无关的尺寸单位文字大小要使用sp作为单位,用户修改完文字尺寸后,文字大小也会跟着变化 1.1TextView android:gravity来指定文字对齐方式,可选值有…
暂无图片
编程学习 ·

Lower Frame Rate Neural Network Acoustic Models翻译

摘要 最近,使用连续时序分类(CTC)训练的神经网络声学模型被提出,作为传统的交叉熵训练的神经网络声学模型的替代方法,其中,交叉熵方法每10ms输出一帧。与传统模型相反,CTC联合声学模型一起学习对齐,并且除了传统声学状态单元外还输出空白符号。这允许CTC模型以低帧率运…
暂无图片
编程学习 ·

SpringBoot问题集锦

问题一: SpringBoot应用部署在外置Tomcat中没有启动,无任何反应 解决办法:启动类继承SpringBootServletInitializer并实现configure方法;@SpringBootApplication public class PaysApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicatio…
暂无图片
编程学习 ·

2016 年实验班选拔试题

SUM(10 分) 题目描述:求出在 1 到 N 之间的所有整数的总和。 输入格式:输入包含多组测试数据。每行是一组测试数据,该数据是一个绝对值不 大于 10000 的整数 N。N=0 时,表示输入结束。 输出格式:对于每组测试数据,输出一行,改行包含一个整数,是所有在 1 到 N 之 间的…
暂无图片
编程学习 ·

英语四六级必备软件

分享今天的软件的时候,突然想到了十几年前初中高中学英语的时候,那时候为了学会英语,让家人买过mp3,结果里面最后装的全部都是流行歌,还买过一个步步高学习机,结果最后这个学习机变成的游戏机,想想如果当初学习英语的有这个软件会怎么样今天分享的这个英语软件面向所有爱…
暂无图片
编程学习 ·

nexus3.x Liunx私库安装教程 (亲测!)

目录前言一、环境准备二、nexus环境配置三、了解nexus四、上传naxus五、使用nexus六、问题1、问题一后言 前言 书接上文?enn… 嘛~ ,上文:nexus 3.x下载 3.18.1(maven 私服) 上面是教如何下载nexus的 嘛,开始吧,有啥阔以聊的我后面再放吧(づ ̄ 3 ̄)づ一、环境准备 1、一台…
暂无图片
编程学习 ·

scala写入读取本地文件操作

def write(fileName: String)(datas: Array[String]): Unit = {val writer = new PrintWriter(new File(fileName))println("--------数据写入--------")for (s <- datas) { // println(s)writer.write(s + "\n")}writer.close()}/*** 数据读取** …
暂无图片
编程学习 ·

一文详解:二叉搜索树

这几天一直在刷题,每天都觉得时间不够用,心态上会有波动。争取在9月之前刷到300道题,调整心态,继续前行。 今天我们来复习一下二叉排序树(BST),首先我们先看下定义: 一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点…
暂无图片
编程学习 ·

使用ftrace分析函数性能

0. 背景 ftrace的功能非常强大,可以在系统的各个关键点上采集数据用以追踪系统的运行情况。既支持预设的静态插桩点(trace event),也支持每个函数的动态插桩(function tracer)。还可以利用动态插桩来测量函数的执行时间(function graph tracer)。关于ftrace的详细操作和原理分…
暂无图片
编程学习 ·

啥是智慧社区-百度人脸识别

还记得前几年大家常说的看“脸”的时代吗?现如今回家必须得看脸了,人脸识别助力智慧社区管理升级,以前我们只能在电影里看到了,刷脸进出小区,刷脸开锁等在现实中已经实现了,那使用了人脸识别的智慧社区到底是个啥?下面AI人工智能带大家一探究竟。1、人工智能赋予美好生活…
暂无图片
编程学习 ·

win10系统Idea运行maven项目的编码设置

编码。。。。好吧,我了解的比较少,此处仅针对本人遇到的问题整理个处理过程。今天运行个maven项目,idea控制台显示中文乱码,不管是System.out还是log4j的输出,但是log4j输出到日志文件又是正常的。查看了网上的处理办法:1、设置Idea的File Encoding2、设置Idea vmoption3…
暂无图片
编程学习 ·

整理得吐血了,二叉树、红黑树、B&B+树超齐全,快速搞定数据结构

前言没有必要过度关注本文中二叉树的增删改导致的结构改变,规则操作什么的了解一下就好,看不下去就跳过,本文过多的XX树操作图片纯粹是为了作为规则记录,该文章主要目的是增强下个人对各种常用XX树的设计及缘由的了解,也从中了解到常用的实现案例使用XX树实现的原因。数据…
暂无图片
编程学习 ·

firewalld管理方式

1.firewalld的开启 systemctl stop iptables systemctl disable iptables systemctl mask iptables systemctl unmask firewalld systemctl enable --now firewalld2.关于firewalld的域trusted 接受所有的网络连接home 用于家庭网络,允许接受ssh mdns ipp-client samba-clie…
暂无图片
编程学习 ·

linux usb usbip驱动详解(二)

终于来到usbip驱动代码分析了!我们在做产品时,通常是先讨论方案、制定协议、编码和测试。usbip的方案是行得通的,它是从URB对象获取信息,然后从tcp发送出去的,URB是linux usb子系统里面用于抽象usb通信而精心设计的对象,只要server和client两边在恰当的时机分别隔断各自系…
暂无图片
编程学习 ·

LeetCode 226. 翻转二叉树

目录结构1.题目2.题解1.题目翻转一棵二叉树。示例:输入:4/ \2 7/ \ / \ 1 3 6 9输出:4/ \7 2/ \ / \ 9 6 3 1备注:这个问题是受到 Max Howell 的 原问题 启发的 :谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上…