自学Java第17天:异常与多线程:异常、线程实现方式、线程同步机制、等待唤醒机制、线程池、Lambda表达式

一、异常

1、异常概念&异常体系

在这里插入图片描述
在这里插入图片描述

2、异常分类

在这里插入图片描述在这里插入图片描述在这里插入图片描述

3、异常的产生过程解析

在这里插入图片描述

4、throw关键字

在这里插入图片描述在这里插入图片描述在这里插入图片描述

5、Object非空判断-requireNonNul

在这里插入图片描述在这里插入图片描述

6、throws关键字-异常处理的第一种方式

在这里插入图片描述在这里插入图片描述在这里插入图片描述

7、try- catch异常处理的第二种方式

在这里插入图片描述在这里插入图片描述在这里插入图片描述

8、Throwable类中3个异常处理的方法

在这里插入图片描述

9、finally代码块

在这里插入图片描述在这里插入图片描述在这里插入图片描述

10、异常处理注意事项- 多异常的捕获处理

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

11、异常处理注意事项-finally有return语句

在这里插入图片描述

12、异常处理注意事项-子父类异常

在这里插入图片描述在这里插入图片描述

13、自定义异常类

在这里插入图片描述在这里插入图片描述

14、自定义异常类的练习

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

二、线程实现方式

1、并发与并行

在这里插入图片描述

2、进程概念

在这里插入图片描述

3、线程概念

在这里插入图片描述

4、线程调度

在这里插入图片描述

5、主线程

在这里插入图片描述在这里插入图片描述在这里插入图片描述

6、创建多线程程序的第一种方式

在这里插入图片描述

package huaiwen.com.day16.demo01;

public class MyThread extends Thread {
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println("run" + i);
        }
    }
}

package huaiwen.com.day16.demo01;


public class Demo01Generic {
    public static void main(String[] args) {
        MyThread mt = new MyThread();
        mt.start();

        for (int i = 0; i < 20; i++) {
            System.out.println("main" + i);
        }
    }

}

7、多线程原理-随机性打印结果

在这里插入图片描述

8、多线程原理-多线程内存图解

在这里插入图片描述

9、Thread类的常用方法-获取线程名称

在这里插入图片描述在这里插入图片描述
运行
在这里插入图片描述

10、Thread类的常用方法-设置线程名称

在这里插入图片描述在这里插入图片描述在这里插入图片描述

11、Thread类的常用方法-sleep

在这里插入图片描述

12、创建多线程程序的第二种方式-实现

在这里插入图片描述在这里插入图片描述在这里插入图片描述

13、Thread和Runnable的区别

在这里插入图片描述

14、匿名内部类方式实现线程的创建

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

三、线程同步机制

1、线程安全问题的概述

在这里插入图片描述

2、线程安全问题的代码实现

在这里插入图片描述在这里插入图片描述在这里插入图片描述

3、线程安全问题产生的原理

在这里插入图片描述

4、解决线程安全问题-同步代码块

在这里插入图片描述在这里插入图片描述在这里插入图片描述

5、同步技术的原理

在这里插入图片描述

6、解决线程安全问题-同步方法

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

7、静态同步方法

在这里插入图片描述

8、解决线程安全问题-Lock锁

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

四、等待唤醒机制

1、线程状态概述

在这里插入图片描述

2、等待唤醒案例分析

在这里插入图片描述

3、等待唤醒案例代码实现

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4、Object类中wait带参方法和notifyALL 方法

在这里插入图片描述

5、线程间通信

在这里插入图片描述在这里插入图片描述

6、等待唤醒机制概述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

7、等待唤醒机制需求分析

在这里插入图片描述

8、等待唤醒机制代码实现-包子类&包子铺类

BaoZi类
在这里插入图片描述
BaoZiPu类
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

9、等待唤醒机制代码实现-吃货类&测试类

吃货类
在这里插入图片描述在这里插入图片描述在这里插入图片描述
测试类
在这里插入图片描述

五、线程池

1、线程池的概念和原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、线程池的代码实现

实现类
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

六、Lambda表达式

1、函数式编程思想概述

在这里插入图片描述

2、冗余的Runnable代码

实现类
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

3、编程思想转换&和体验Lambda的更优

在这里插入图片描述

4、Lambda标准格式

在这里插入图片描述

5、Lambda表达式的无参数无返回值

Cook接口
在这里插入图片描述在这里插入图片描述在这里插入图片描述

6、Lambda表达式有参数有返回值

创建一个标准-同String的Person类
在这里插入图片描述在这里插入图片描述在这里插入图片描述

7、Lambda表达式有参数有返回值的练习

接口
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

8、Lambda省略格式&Lambda使用前

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值